JdbcTemplate在org.springframework.jdbc.core这个包下面,是这个包的核心类。它简化了JDBC的使用和帮助避免常见错误。使用JdbcTemplate需要给它设置一个javax.sql.DataSource。数据源有很多种,由驱动程序供应商实现,常见的有JNDI方式实现的数据源、Apache的DBCP、C3P0、Proxool、BoneCP等等。JdbcTemplate抛出的异常都是与特定技术无关的DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。 DataAccessException 是一个RuntimeException这意味着你在应用程序中不必强行捕获该异常,可以交由上层处理.如果直接处理SQLException ,我们需要获得特定数据库的错误代码,然后判断该SQLException 的原因,包装成自定义异常然后交由上层处理.现在,由于Spring 为我们提供了一个与底层数据库无关的异常体系,因此可以方便地处理各种数据访问异常。
JdbcTemplate主要提供以下几类方法:
batchUpdate:用于执行批处理相关语句;
call方法:用于执行存储过程、函数相关语句;
execute:可以执行任何SQL语句;
update:用于执行新增、修改、删除等语句;
query:用于执行查询相关语句;
queryFor:用于执行查询相关语句
execute(String sql) :主要用来执行DDL
execute(StatementCallback<T> action):
execute(ConnectionCallback<T> action)
execute(String callString, CallableStatementCallback<T> action))
execute(String sql, PreparedStatementCallback<T> action)
execute(CallableStatementCreator csc,CallableStatementCallback<T> action)
execute(PreparedStatementCreator psc,PreparedStatementCallback<T> action)
update(String sql):主要用来执行DML
update(String sql, Object... args):绑定参数;
update(String sql, Object[] args, int[] argTypes):
绑定参数,并且设置每个参数的数据类型,类型int值参j考ava.sql.Types
update(String sql, PreparedStatementSetter pss):
query(String sql, Object[] args, RowMapper<T> rowMapper):
query(String sql, Object[] args, RowCallbackHandler rch):
query(String sql, ResultSetExtractor<T> rse):
这几个方法都有将参数绑定到sql语句的重载方法。
queryforXXX(……)方法:XXX是某种数据类型,一般每种数据类型都至少有以下几个方法