第四章、Spring的数据库开发
4.1 Spring JDBC
Spring的JDBC模块负责数据库资源管理和错误处理。
4.1.1 Spring JdbcTemplate的解析
针对数据库的操作,Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础,其他更高层次的抽象类却是构建于JdbcTemplate类之上。可以说,JdbcTemplate类是Spring JDBC的核心类。
继承自抽象类JdbcAccess,同时实现了JdbcOperations接口。
JdbcAccessor提供的属性
- Datasource: 其主要功能是获取数据库连接,具体实现时还可以引入对数据库连接的 缓冲池和分布式事务的支持,它可以作为访问数据库资源的标准接口。
- SQLExceptionTranslator: org.springframework.jdbc.support.SQLExceptionTranslator接口对SQLException进行转译工作。通过必要的设置或者获取SQLExceptionTranslator中的方法,可以使JdbcTemplate在需要处理SQLException时,委托SQLExceptionTranslator的实现类来完成相关的转译工作。
- JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询、删除等。
4.1.2 Spring JDBC的配置
Spring JDBC模块主要由四个包组成,分别是Core(核心包)、dataSource(数据源包)、object(对象包)、support(支持包)
包名 | 说明 |
---|---|
core | 包含了JDBC的核心功能包括(JdbcTemplate SimpleJdbcInsert SimpleJdbcCall NamedParameterJdbcTemplate) |
datasource | 访问数据源的工具类 |
object | 以面向对象的方式访问数据库,允许执行查询并将返回结果作为业务对象,可以在数据表的列和业务对象的属性之间映射查询结果 |
support | 包含了core和object包的支持类,例如异常转换功能的SQLEXception类 |
Spring JdbcTemplate的常用方法
4.2.1 execute(String sql)
能够完成执行SQL语句的功能
4.2.2 update()
update()方法完成插入、更新和删除数据的操作
int update(String sql) | 直接传入SQL,返回受影响的行数 |
---|---|
int update(PreparedStatementCreator psc) | 执行从PreparedStatementSetter返回的语句 |
int update(String sql,PreparedStatementSetter pss) | 通过PreparedStatementSetter设置SQL语句中的参数 |
int update(String sql,Object… args) | 该方法使用Object…设置SQL语句中的参数,要求参数不能为NULL,并返回受影响的行数 |
4.2.3query()
处理对各数据表的查询操作
方法 | 说明 |
---|---|
List query(String sql,RowMapper romMapper) | 执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果 |
List query(String sql,PreparedStatementSetter pss,RowMapper rowMapper) | SQL创建预处理对象,pss设置参数,rowMapper返回结果 |
List query(String sql,Object[] args,RowMapper rowMappe) | 同上 |
queryForObject(String sql,RowMapper rowMapper,Object… args) | 返回单行结果 |
queryForList(String sql,Object[] args,class elementType) | 返回多行结果,必须是返回列表,指定元素类型 |