`
aa87963014
  • 浏览: 150523 次
  • 性别: Icon_minigender_1
  • 来自: 布尼塔尼亚
社区版块
存档分类
最新评论

FreyjaJdbcTemplate特性三:JdbcTemplate

 
阅读更多

这个算不上什么特性。每个用过spring jdbcTemplate的估计都会写一些封装类。

 

老实说在使用过程中,吃了点亏,浪费了一些时间。

 

1、RowMapper

2、update

 

RowMapper很好很强大,Freyja里面使用了3个实现类

 

BeanPropertyRowMapper - 用来处理类似于select * from User 的结果集

MapRowMapper - 用来处理类似于 select name,age from User  的结果集 Map<String,Object>结构返回

ObjectRowMapper - 同MapRowMapper 不过返回是以List<Object[]>结构返回如果只有一个返回值则为Object 泛型

SimpleRowMapper - 返回单个泛型(我突然发现这个好像和BeanPropertyRowMapper 雷同。)

 

jdbcTemplate的update封装很好很强大

但是如果参数有null则会报错。也就是说

update(String sql, Object... args)这个方法完全属于坑爹方法根本就不应该存在。

而应该使用

update(String sql, Object[] args, int[] argTypes)除了set args之外你需要指定类型:argType

 

重复一遍,你根本就不应该认识上面一个方法,因为你根本就不能确定args数组是否有null

 

args应该为可序列化的,取出来也是序列化对象。如果你把一个Integer[][] arr; 存入blob,那么你取得时候需要处理下,spring jdbc会按照blob格式取出来给你,当然你会获得一个byte[]然后转型之后你会获得Integer[] 这个完全错乱的数值,处理办法也好办。例如:deserialize()然后转型就行了。

 

blob字段还没有试过。

 

FreyjaJdbcTemplate特性一:HQL 

 

FreyjaJdbcTemplate特性二:cache

 

FreyjaJdbcTemplate特性三:JdbcTemplate 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics