日期:2014-05-16  浏览次数:20399 次

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

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

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

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

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

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

/**
 * 构建insert语句
 * 
 * @param entity 实体映射对象
 * @param nameHandler 名称转换处理器
 * @return
 */publicstaticSqlContext buildInsertSql(Object entity,NameHandler nameHandler){Class<?> clazz = entity.getClass();String tableName = nameHandler.getTableName(clazz.getSimpleName());String primaryName = nameHandler.getPrimaryName(clazz.getSimpleName());StringBuilder sql =newStringBuilder