• 5 点赞

    spring JdbcTemplate实现通用的泛型dao一:主功能实现

    在项目中一直使用Mybaits,最近想自己搞个小项目,通过对比之后发现mybatis的优势并不是十分明显了,个人小项目倾向于更加简洁的DBUtils。Spring jdbc也实现了DBUtils基本一样的功能,项目中又刚好用到了spring,这当然是不二之选了。 Mybaits采用xml的方式,想要实现通用的da
  • 4 点赞

    Spring JdbcTemplate实现通用的泛型dao二:实现自己的名称转换NameHandler

    这个比较简单,只是实现了根据Java实体属性名转换回数据库表的列名而已,看下接口定义: /** * 名称处理接口 * * User: liyd * Date: 2/12/14 * Time: 4:51 PM */ public interface NameHandler { /** * 根据实体名获取表名 * * @param
  • 5 点赞

    Spring JdbcTemplate实现通用的泛型dao三:构建动态sql

    构建动态sql,其实说白了就是拼装sql语句,在这里我把传入的实体参数,属性有值的拼装进sql,为null的则忽略,要实现这个不用说,肯定要利用Java的反射功能。 来看一个具有代表性的insert语句的构建: /** * 构建insert语句 * * @param entity 实体映射对象 * @param
  • 4 点赞

    Spring JdbcTemplate实现通用的泛型dao四:通用自定义转换到JavaBean的RowMapper实现

    使用Spring JdbcTemplate查询出数据以后,默认返回的是Map,列名为key,值为value,为了方便操作自然要转换到我们的JavaBean实体对象,spring也提供了一个常规的通用操作类和方法,BeanPropertyRowMapper.newInstance(entityClazz),可以完成一般的转换,前提是表的列名和类的
  • 3 点赞

    改进版通用dao实现一:实现说明

    最近因为事情比较多好久没写博客,一晃居然都几个月了。 之前随手写的Spring JdbcTemplate实现通用的泛型dao 和spring整合quartz整合动态定时任务系列,没想到会有那么多人向我要源码和demo, 这里要说声抱歉了,因为之前写的时候并没有特地的整理及示范的demo,也因为博客一
  • 2 点赞

    改进版通用dao实现二:dao实现类

    前面我们已经定义好了接口,也贴出了如何使用的测试类,现在来说说dao类的实现。 其实dao类的实现并没有什么技术含量,无非就是根据传入的参数进行一个sql的拼装并执行而已,关键在于如何做才能方便和优雅一些。 先来看看实现类定义的一些成员变量: /** * jdbc操作dao *
  • 6 点赞

    改进版通用dao实现三:分页实现

    前面我们已经实现了dao的增删改查功能,但是在封装的查询方法中并没有分页方法,那么我们又要如何来实现呢? 先来看看分页查询的代码: @Test public void queryList1() { User user = new User(); PageControl.performPage(user); jdbcDao.queryList(user);
  • 28 点赞

    改进版通用dao实现四:源码及题外话

    至此,终于把这个烂尾的系列写完了,心中也不禁舒畅了下,终于可以给那些要源代码的人一个交代了。 接下来把那个定时任务系列也弄完就可以写我想写的博客了! 在实现到这里的时候,我也想过能不能把分表(分库通常由数据源完成)的操作也封装一下,但是因为分表操作往往和业务相
  • 3 点赞

    通用JdbcDao更新,增加括号支持

    本次更新到 2015-10-9 V1.0.2版本 该版本增加了括号的支持,可以实现不同的属性在括号内or的情况,示例: Criteria criteria = Criteria.create(User.class) .where("userType", new Object[] { "1" }).beginBracket() .and("loginName&quot
  • 3 点赞

    通用JdbcDao更新,增加数据分表水平拆分支持

    本次更新对JdbcDao的一些内部实现进行了重构,最大的改变是在调用NameHandler的getTableName方法时会传入所有拥有值的属性,以方便实现表的水平拆分。 数据水平拆分的分表,很难做到通用,因为它往往是跟业务紧密结合的。 以书籍和章节为例,书籍可以简单的根据主键id(这里主
  • 24 点赞

    Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大

    这两天比较忙,没抽出什么时间,这一停顿居然已经有2个评论了,无疑增添了我的不少动力。 在开始之前,先说下前面实现的通用泛型dao,在第四篇 通用自定义转换到JavaBean的RowMapper实现中,把获取属性的操作也放到了mapRow的方法中,这会导致在每一行数据转换的时候都会获取
  • 5 点赞

    Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大(续)

    前面介绍了一些基本方法的使用,除了不用一个实体类对应的dao外没多大区别,接下来介绍的就是本次改进的重点了。 封装完成之后,用这个通用dao做了个小站,在使用过程中,速度提升不少,但是还有些小细节不够完美,目前感受到的有以下: 1、一个字段等于多个值的or方式查询实
  • 4 点赞

    基于spring JdbcTemplate改进版通用dao的使用及实现

    之前写过一个基于spring JdbcTemplate的通用dao,以及它初步的改进版,有兴趣的可以看一下这个系列,记录了这个通用dao的编写过程。 改进版的通用dao之前已经初步介绍过,经过这段时间的使用以及用它开发了一个简单的站点,里面的很多方法进行了改近和重构,目前已经基本稳定
  • 3 点赞

    基于spring JdbcTemplate改进版通用dao的使用及实现二:使用分页

    在通用dao中,分页功能被封装的十分方便。 并且它可以和前面的各类查询、组合查询结合使用,完全不冲突。 另外,分页的封装是基于JdbcTemplate,也就是说你自己实现的其它各类dao也都可以使用它而非局限于默认提供的SuperDao。 你无须关心数据库类型,它会自动判断为你生成分
  • 2 点赞

    基于spring JdbcTemplate改进版通用dao的使用及实现三:SuperDao类的设计和实现

    前面讲了如何使用,该讲讲如何实现了。 其实技术上并没有什么难度,主要就是一个设计思路。 先来讲解一下superDao,大体上跟前面实现的原理没有什么变化,主要就是添加了根据class对象查询及组合使用。 先来看一下superDao的使用声明: <bean id="superDao" clas
  • 8 点赞

    通用JdbcDao更新,增加动态数据源,支持权重和读写分离

    版本:V1.2.3 本次更新增加了动态数据源的支持,可以十分方便的在配置文件中将原来的单数据源修改成动态数据源,而无须修改任何的业务代码。 下面来看看如何使用动态数据源,关于动态数据源的实现,请看这里:Spring实现动态数据源,支持动态添加、删除和设置权重及读写分离
  • 3 点赞

    dexcoder-dal大版本更新,重构及支持更多特性

    版本:v2.0.0-beta1 本次对代码进行了彻底的重构,并调整了项目结构,项目命名为dexcoder-dal。 主要更新: 彻底的代码重写 Criteria方式针对sql的api调整 Criteria中支持sql函数的执行 Criteria原生方式sql执行,{}完全原生,[]进行fieldName到columnName转换的原生 支持执行