JdbcTemplate简介
Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。
JdbcTemplate位于 spring-jdbc-4.3.0.RELEASE.jar 中。其全限定命名为
org.springframework.jdbc.core.JdbcTemplate。要使用JdbcTemlate还需一个 spring-tx-4.3.0.RELEASE.jar , 这个包包含了事务和异常控制。
JdbcTemplate主要提供以下方法:
1. 构造方法
- JdbcTemplate()
为bean的使用构造一个新的JdbcTemplate。 - JdbcTemplate(DataSource dataSource)
构造一个新的JdbcTemplate,给定一个DataSource来获取连接。 - JdbcTemplate(DataSource dataSource, boolean lazyInit)
构造一个新的JdbcTemplate,给定一个DataSource来获取连接,可以指定是否懒加载。
2. execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句
- Object execute(CallableStatementCreator csc, CallableStatementCallback action)
执行JDBC数据访问操作,实现为处理JDBC CallableStatement的回调操作。 - Object execute(ConnectionCallback action)
执行JDBC数据访问操作,实现为在JDBC连接上进行的回调操作。 - Object execute(PreparedStatementCreator psc, PreparedStatementCallback action)
执行JDBC数据访问操作,实现为在JDBC PreparedStatement上进行的回调操作。 - Object execute(StatementCallback action)
执行JDBC数据访问操作,实现为处理JDBC语句的回调操作。 - void execute(String sql)
发出单个SQL执行,通常是DDL语句。 - Object execute(String callString, CallableStatementCallback action)
执行JDBC数据访问操作,实现为处理JDBC CallableStatement的回调操作。 - Object execute(String sql, PreparedStatementCallback action)
执行JDBC数据访问操作,实现为在JDBC PreparedStatement上进行的回调操作。 - protected Map extractOutputParameters(CallableStatement cs, List parameters)
从完成的存储过程中提取输出参数。 - protected Map extractReturnedResults(CallableStatement cs, List updateCountParameters, List resultSetParameters, int updateCount)
从完成的存储过程中提取返回结果集。
3. query方法及queryForXXX方法:用于执行查询相关语句;
- Object query(PreparedStatementCreator psc, PreparedStatementSetter pss, ResultSetExtractor rse)
使用预准备语句进行查询,允许PreparedStatementCreator和PreparedStatementSetter。 - Object query(PreparedStatementCreator psc, ResultSetExtractor rse)
使用预准备语句进行查询,使用ResultSetExtractor读取ResultSet。 - void query(PreparedStatementCreator psc, RowCallbackHandler rch)
使用预准备语句进行查询,使用RowCallbackHandler逐行读取ResultSet。 - List query(PreparedStatementCreator psc, RowMapper rowMapper)
使用预准备语句进行查询,通过RowMapper将每一行映射到Java对象。 - Object query(String sql, Object[] args, int[] argTypes, ResultSetExtractor rse)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,使用ResultSetExtractor读取ResultSet。 - void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,使用RowCallbackHandler以每行为基础读取ResultSet。 - List query(String sql, Object[] args, int[] argTypes, RowMapper rowMapper)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,通过RowMapper将每一行映射到Java对象。 - Object query(String sql, Object[] args, ResultSetExtractor rse)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,使用ResultSetExtractor读取ResultSet。 - void query(String sql, Object[] args, RowCallbackHandler rch)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,使用RowCallbackHandler以每行为基础读取ResultSet。 - List query(String sql, Object[] args, RowMapper rowMapper)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,通过RowMapper将每一行映射到Java对象。 - Object query(String sql, PreparedStatementSetter pss, ResultSetExtractor rse)
使用预准备语句进行查询,使用ResultSetExtractor读取ResultSet。 - void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch)
查询给定SQL以从SQL创建预准备语句和PreparedStatementSetter实现,该实现知道如何将值绑定到查询,使用RowCallbackHandler以每行为基础读取ResultSet。 - List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)
查询给定SQL以从SQL创建预准备语句和PreparedStatementSetter实现,该实现知道如何将值绑定到查询,通过RowMapper将每一行映射到Java对象。 - Object query(String sql, ResultSetExtractor rse)
在给定静态SQL的情况下执行查询,使用ResultSetExtractor读取ResultSet。 - void query(String sql, RowCallbackHandler rch)
执行给定静态SQL的查询,使用RowCallbackHandler以每行为基础读取ResultSet。 - List query(String sql, RowMapper rowMapper)
执行给定静态SQL的查询,通过RowMapper将每一行映射到Java对象。 - int queryForInt(String sql)
给定静态SQL,执行导致int值的查询。 - int queryForInt(String sql, Object[] args)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,从而生成int值。 - int queryForInt(String sql, Object[] args, int[] argTypes)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,从而生成int值。 - List queryForList(String sql)
给定静态SQL,执行结果列表的查询。 - List queryForList(String sql, Class elementType)
给定静态SQL,执行结果列表的查询。 - List queryForList(String sql, Object[] args)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果列表。 - List queryForList(String sql, Object[] args, Class elementType)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果列表。 - List queryForList(String sql, Object[] args, int[] argTypes)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果列表。 - List queryForList(String sql, Object[] args, int[] argTypes, Class elementType)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果列表。 - long queryForLong(String sql)
给定静态SQL,执行导致long值的查询。 - long queryForLong(String sql, Object[] args)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,从而产生长值。 - long queryForLong(String sql, Object[] args, int[] argTypes)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,从而产生长值。 - Map queryForMap(String sql)
给定静态SQL,执行结果Map的查询。 - Map queryForMap(String sql, Object[] args)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果Map。 - Map queryForMap(String sql, Object[] args, int[] argTypes)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果Map。 - Object queryForObject(String sql, Class requiredType)
给定静态SQL,对结果对象执行查询。 - Object queryForObject(String sql, Object[] args, Class requiredType)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果对象。 - Object queryForObject(String sql, Object[] args, int[] argTypes, Class requiredType)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望结果对象。 - Object queryForObject(String sql, Object[] args, int[] argTypes, RowMapper rowMapper)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,通过RowMapper将单个结果行映射到Java对象。 - Object queryForObject(String sql, Object[] args, RowMapper rowMapper)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,通过RowMapper将单个结果行映射到Java对象。 - Object queryForObject(String sql, RowMapper rowMapper)
执行给定静态SQL的查询,通过RowMapper将单个结果行映射到Java对象。 - SqlRowSet queryForRowSet(String sql)
给定静态SQL,执行SqlRowSet的查询。 - SqlRowSet queryForRowSet(String sql, Object[] args)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望SqlRowSet。 - SqlRowSet queryForRowSet(String sql, Object[] args, int[] argTypes)
查询给定SQL以从SQL创建预准备语句以及绑定到查询的参数列表,期望SqlRowSet。
4. update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句
-
int update(PreparedStatementCreator psc)
使用PreparedStatementCreator发出单个SQL更新操作(例如insert,update或delete语句)以提供SQL和任何必需参数。 -
int update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder)
使用PreparedStatementCreator发出更新语句,以提供SQL和任何必需的参数。 -
** protected int update(PreparedStatementCreator psc, PreparedStatementSetter pss)**
-
int update(String sql)
发出单个SQL更新操作(例如插入,更新或删除语句)。 -
int update(String sql, Object[] args)
通过准备好的语句发出单个SQL更新操作(例如插入,更新或删除语句),绑定给定的参数。 -
int update(String sql, Object[] args, int[] argTypes)
通过准备好的语句发出单个SQL更新操作(例如插入,更新或删除语句),绑定给定的参数。 -
int update(String sql, PreparedStatementSetter pss)
使用PreparedStatementSetter发出更新语句,以使用给定的SQL设置绑定参数。