欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

FreyjaJdbcTemplate特性三:JdbcTemplate

程序员文章站 2022-03-07 15:19:33
...

这个算不上什么特性。每个用过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