Spring JDBC template
原理:
把数据库连接,关闭等相似的逻辑提取到模板方法类中,然后让子类根据具体数据库实现差异代码。抽象不同数据库,屏蔽了sql语法差异,返回值的不同。
三种常见回调函数接口:
ResultSetExtractor: 返回Object
RowMapper: 返回List
RowCallbackHandler: 无返回void
JDBC Template查询:
可多结果查询:
int queryForInt(String sql)
int queryForInt(String sql, Object[] args)
当然还有queryForLong, queryForObject等
此类方法查询如:select u.age from user as u where u.id=?;
另外单一结果查询:
Map queryForMap(String sql)
Map queryForMap(String sql, Object[] args)
形式如:select * from user limit 0,1;
返回字段与值形成的Map
DML语句:
int update(String sql)
int update(String sql, Object[] args)
int update(String sql, Object[] args, int[] argTypes)
int[] batchUpdate(String[] sql)
int[] batchUpdate(String[] sql, BatchPreparedStatementSetter pss)
DDL语句:
void execute(String sql)