JdbcTemplate的核心类是JdbcTemplate。它是线程安全的并可以重用的。主要由以下几个部分组成:
- DataSource:用于获取数据库连接,可以是JndiDataSourceFactoryBean等 Produces DataSource instances from a JNDI name或BasicDataSource等。
- SQLExceptionTranslator:用于将SQLException转换为DataAccessException。默认使用SQLErrorCodeSQLExceptionTranslator。
- JdbcAccessor:用于执行SQL操作与处理结果。主要方法有:
- query: 执行SELECT查询,返回List>等结果。
- update: 执行INSERT/UPDATE/DELETE语句,返回受影响行数。
- batchUpdate: 批量执行SQL语句。
- queryForObject: 返回一个对象作为查询结果。
- queryForRowSet: 返回RowSet结果。
- queryForInt/Long等:返回一个数值结果。
- SimpleJdbcCall:用于执行存储过程,封装了IN、OUT和INOUT参数。
- NamedParameterJdbcTemplate:支持用名称而不是问号(?)作为SQL参数占位符。
- JdbcTemplate类继承自JdbcAccessor并组合DataSource与SQLExceptionTranslator,添加了事务管理等功能。
所以,JdbcTemplate的主要组成部分是:
- DataSource: 用以获取数据库连接
- SQLExceptionTranslator: 异常转译器
- JdbcAccessor: 负责执行SQL语句与处理结果
- JdbcTemplate: 通过组合DataSource与SQLExceptionTranslator,并继承JdbcAccessor,提供完整功能。
其中,JdbcTemplate是最终提供给用户使用的模板类。它包含了上述各部分的功能,并添加了事务管理,参数设置等额外功能。
所以,要理解JdbcTemplate,关键是理解其各个部分的作用与关系。然后熟悉JdbcTemplate本身提供的各种方法并在项目中运用。