一、什么是JDBCTemplate
Spring使用模板方式封装jdbc数据库操作固定流程,并提供丰富callback回调接口功能,方便用户自定义加工细节,更好模块化jdbc操作,简化传统的JDBC操作的复杂和繁琐过程。
JDBCTemplate主要提供以下五类方法:
(1) execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
jdbcTemplate.execute("CREATE TABLE t_user (user_id integer, name varchar(64))");
(2) update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
jdbcTemplate.update("update t_user set username=? where id=?",user.getUsername(), user.getId());
(3) query方法及queryForXXX方法:用于执行查询相关语句;
int count = jdbcTemplate.queryForInt("select count(*) from t_user");
List<String> nicknameList = jdbcTemplate.queryForList("select nickname from t_user", String.class);
(4) call方法:用于执行存储过程、函数相关语句。
JdbcTemplate类支持的回调类:
(1) 预编译语句及存储过程创建回调
PreparedStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的PreparedStatement;
CallableStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的CallableStatement;
(2) 预编译语句设值回调
PreparedStatementSetter:通过回调获取JdbcTemplate提供的PreparedStatement,由用户来对相应的预编译语句相应参数设值;
BatchPreparedStatementSetter:;类似于PreparedStatementSetter,但用于批处理,需要指定批处理大小;
(3)自定义功能回调
ConnectionCa