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

    版本:V1.2.3 本次更新增加了动态数据源的支持,可以十分方便的在配置文件中将原来的单数据源修改成动态数据源,而无须修改任何的业务代码。 下面来看看如何使用动态数据源,关于动态数据源的实现,请看这里:Spring实现动态数据源,支持动态添加、删除和设置权重及读写分离
    selfly 发表于1年前 阅读(6156) 评论(0)
  • 基于spring JdbcTemplate改进版通用dao的使用及实现三:SuperDao类的设计和实现

    前面讲了如何使用,该讲讲如何实现了。 其实技术上并没有什么难度,主要就是一个设计思路。 先来讲解一下superDao,大体上跟前面实现的原理没有什么变化,主要就是添加了根据class对象查询及组合使用。 先来看一下superDao的使用声明: <bean id="superDao" clas
    selfly 发表于1年前 阅读(11308) 评论(5)
  • 基于spring JdbcTemplate改进版通用dao的使用及实现二:使用分页

    在通用dao中,分页功能被封装的十分方便。 并且它可以和前面的各类查询、组合查询结合使用,完全不冲突。 另外,分页的封装是基于JdbcTemplate,也就是说你自己实现的其它各类dao也都可以使用它而非局限于默认提供的SuperDao。 你无须关心数据库类型,它会自动判断为你生成分
    selfly 发表于1年前 阅读(7172) 评论(0)
  • 基于spring JdbcTemplate改进版通用dao的使用及实现

    之前写过一个基于spring JdbcTemplate的通用dao,以及它初步的改进版,有兴趣的可以看一下这个系列,记录了这个通用dao的编写过程。 改进版的通用dao之前已经初步介绍过,经过这段时间的使用以及用它开发了一个简单的站点,里面的很多方法进行了改近和重构,目前已经基本稳定
    selfly 发表于1年前 阅读(6067) 评论(1)
  • jdbcTemplate的queryForXXX方法抛出异常解决

    工具包的通用dao中,封装了一个获取大字段blob的方法,初始代码如下: String sql = String.format(tmp_sql, columnName, tableName, primaryName); return (byte[]) jdbcTemplate.queryForObject(sql, new Object[] { id }, new RowMapper<Object>() {
    selfly 发表于1年前 阅读(7852) 评论(0)
  • Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大(续)

    前面介绍了一些基本方法的使用,除了不用一个实体类对应的dao外没多大区别,接下来介绍的就是本次改进的重点了。 封装完成之后,用这个通用dao做了个小站,在使用过程中,速度提升不少,但是还有些小细节不够完美,目前感受到的有以下: 1、一个字段等于多个值的or方式查询实
    selfly 发表于1年前 阅读(7849) 评论(3)
  • Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大

    这两天比较忙,没抽出什么时间,这一停顿居然已经有2个评论了,无疑增添了我的不少动力。 在开始之前,先说下前面实现的通用泛型dao,在第四篇 通用自定义转换到JavaBean的RowMapper实现中,把获取属性的操作也放到了mapRow的方法中,这会导致在每一行数据转换的时候都会获取
    selfly 发表于1年前 阅读(28064) 评论(3)
  • jdbcTemplate等根据connection链接动态获取数据库类型

    写了个数据库的通用dao,想要再扩展一下,采用拦截器等方式实现查询的分页等功能,使之更加方便通用。但是每个数据库的分页查询方式都有点不一样,所以在处理时必须要先得到数据库的类型。 为了使代码简洁没有配置文件等这类玩意,最好的办法是根据数据源动态的获取数据库的类
    selfly 发表于1年前 阅读(8996) 评论(0)
  • 通用JdbcDao更新,增加数据分表水平拆分支持

    本次更新对JdbcDao的一些内部实现进行了重构,最大的改变是在调用NameHandler的getTableName方法时会传入所有拥有值的属性,以方便实现表的水平拆分。 数据水平拆分的分表,很难做到通用,因为它往往是跟业务紧密结合的。 以书籍和章节为例,书籍可以简单的根据主键id(这里主
    selfly 发表于1年前 阅读(1737) 评论(0)
  • 通用JdbcDao更新,增加括号支持

    本次更新到 2015-10-9 V1.0.2版本 该版本增加了括号的支持,可以实现不同的属性在括号内or的情况,示例: Criteria criteria = Criteria.create(User.class) .where("userType", new Object[] { "1" }).beginBracket() .and("loginName"
    selfly 发表于1年前 阅读(1860) 评论(0)
  • XMLTYPE类型更新ORA-31167: XML nodes over 64K in size cannot be inserted等问题

    今天在批量更新Oracle数据库中一个XMLTYPE类型字段时,部分数据更新时抛出了如下异常: java.sql.SQLException: ORA-31167: XML nodes over 64K in size cannot be inserted 看异常提示,意思是节点大小超过了64K不能插入。 这里采用的是Oracle提供的oracle.xdb.XMLType类的
    selfly 发表于1年前 阅读(2528) 评论(0)
  • 改进版通用dao实现四:源码及题外话

    至此,终于把这个烂尾的系列写完了,心中也不禁舒畅了下,终于可以给那些要源代码的人一个交代了。 接下来把那个定时任务系列也弄完就可以写我想写的博客了! 在实现到这里的时候,我也想过能不能把分表(分库通常由数据源完成)的操作也封装一下,但是因为分表操作往往和业务相
    selfly 发表于1年前 阅读(48986) 评论(656)
  • 改进版通用dao实现三:分页实现

    前面我们已经实现了dao的增删改查功能,但是在封装的查询方法中并没有分页方法,那么我们又要如何来实现呢? 先来看看分页查询的代码: @Test public void queryList1() { User user = new User(); PageControl.performPage(user); jdbcDao.queryList(user);
    selfly 发表于1年前 阅读(9516) 评论(6)
  • 改进版通用dao实现二:dao实现类

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

    最近因为事情比较多好久没写博客,一晃居然都几个月了。 之前随手写的Spring JdbcTemplate实现通用的泛型dao 和spring整合quartz整合动态定时任务系列,没想到会有那么多人向我要源码和demo, 这里要说声抱歉了,因为之前写的时候并没有特地的整理及示范的demo,也因为博客一
    selfly 发表于1年前 阅读(5164) 评论(1)
  • Spring JdbcTemplate实现通用的泛型dao四:通用自定义转换到JavaBean的RowMapper实现

    使用Spring JdbcTemplate查询出数据以后,默认返回的是Map,列名为key,值为value,为了方便操作自然要转换到我们的JavaBean实体对象,spring也提供了一个常规的通用操作类和方法,BeanPropertyRowMapper.newInstance(entityClazz),可以完成一般的转换,前提是表的列名和类的
    selfly 发表于1年前 阅读(14994) 评论(17)
  • Spring JdbcTemplate实现通用的泛型dao三:构建动态sql

    构建动态sql,其实说白了就是拼装sql语句,在这里我把传入的实体参数,属性有值的拼装进sql,为null的则忽略,要实现这个不用说,肯定要利用Java的反射功能。 来看一个具有代表性的insert语句的构建: /** * 构建insert语句 * * @param entity 实体映射对象 * @param
    selfly 发表于1年前 阅读(17348) 评论(3)
  • Spring JdbcTemplate实现通用的泛型dao二:实现自己的名称转换NameHandler

    这个比较简单,只是实现了根据Java实体属性名转换回数据库表的列名而已,看下接口定义: /** * 名称处理接口 * * User: liyd * Date: 2/12/14 * Time: 4:51 PM */ public interface NameHandler { /** * 根据实体名获取表名 * * @param
    selfly 发表于1年前 阅读(7653) 评论(3)
  • spring JdbcTemplate实现通用的泛型dao一:主功能实现

    在项目中一直使用Mybaits,最近想自己搞个小项目,通过对比之后发现mybatis的优势并不是十分明显了,个人小项目倾向于更加简洁的DBUtils。Spring jdbc也实现了DBUtils基本一样的功能,项目中又刚好用到了spring,这当然是不二之选了。 Mybaits采用xml的方式,想要实现通用的da
    selfly 发表于1年前 阅读(7016) 评论(1)
  • spring Jdbctemplate返回插入记录的自增Id

    通常情况下我们在程序中往数据库插入记录,如果主键id是由数据库负责生成,在插入成功之后都是返回主键id方便在插入其它数据时做主键关联,spring Jdbctemplate对这个也是支持的,主要代码如下: public int insertTable(LabelForm f) throws SQLException,ParseException {
    selfly 发表于1年前 阅读(15697) 评论(0)