SpringJDBC

更改 主要使用的是 update 方法

 

批量更改:一次性执行多条 update 语句,使用 batchUpdate 方法
  • jdbcTemplate.batchUpdate(String[] sql); 固定参数值
  • jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter()); 可变参数值


 
 

查询 主要使用的是 query、queryForXX 等函数,而 queryForXX 系列底层其实调用的是 query 方法,故这里只介绍通过 query 方法查询数据。

query 有多个重载方法,例如传入固定参数的 SQL 语句,传入可变参数的 SQL 语句等等,语法类似上面介绍的 update 方法,这里介绍两种带回调方法的查询语句:

(1) void query(String sql, RowCallbackHandler rch)

使用 RowCallbackHandler 既可以返回单行结果,也可以返回多行结果。Spring 会对查询的结果集逐行调用 processRow 方法,用户不用关心怎么读取下一行数据的问题。

(2) <T> T queryForObject(String sql, RowMapper<T> rowMapper)

使用 RowMapper 处理结果集,它直接返回的是 List,相比于上面,我们不用手动将对象添加到 List 中

 

 

RowCallbackHandler 接口的实现类是可以有状态,即在多线程环境下,可能会有线程安全的问题。
下面代码就展示了其实现类 RowCountCallbackHandler 打印结果集行数的示例,在多线程环境中,若行数发生变化,下面的结果可能不会一致。而 RowMapper 实现类没有这种情况。



 
posted @ 2019-04-23 00:09  无心丶Puppet  阅读(63)  评论(0编辑  收藏  举报