第4章 Spring的数据库开发
4.1 Spring JDBC
Spring JDBC推荐文章:https://www.cnblogs.com/jiyukai/p/9386183.html
4.2 Spring JdbcTemplate的解析
JdbcTemplate类:是Spring框架数据抽象层的基础,其他更高层次的抽象类却是构建于JdbcTemplate类之上的,JdbcTemplate类是Spring JDBC的核心类
JdbcTemplate类:继承关系十分简单,它继承自抽象类JdbcAccessor,同时实现了JdbcOperations接口
JdbcTemplate类的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性,具体如下:
1.DataSource:其主要功能是获取数据库连接,具体实现时还可以引入对数据库连接的缓冲池和分布式事务的支持,它可以作为访问数据库资源的标准接口
2.SQLExceptionTranslator:org.springframework.jdbc.support.SQLExceptionTranslator接口负责对SQLException进行转译工作。通过必要的设置或者获取SQLExceptionTranslator中的方法,可以使JdbcTemplate在需要处理SQLEception时,委托SQLExceptionTranslator的实现类来完成相关的转译工作
3.JdbcOperations:接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加,修改,查询和删除等操作
4.3 Spring JDBC的配置
Spring JDBC模板:主要由4个包组成,分别是core(核心包),dataSource(数据源包),object(对象包)和support(支持包),关于这4个包的具体说明如下:
包名 | 说明 |
---|---|
core | 包含了JDBC的核心功能类,包括JdbcTemplate类,SimpleJdbclnsert类,SimpleJdbcCall类以及NamedParameterJdbcTemplate类 |
dataSource | 访问数据源的实用工具类,它有多种数据源的实现,可以在Java EE容器外部测试JDBC代码 |
object | 以面向对象的方式访问数据库,它允许执行查询并将返回结果作为业务对象,可以在数据表的列和业务对象的属性之间映射查询结果 |
support | 包含了core和object包的支持类,例如,提供异常转换功能的SQLException类 |
dataSource的4个属性如下:
属性名 | 含义 |
---|---|
driverClassName | 所使用的驱动名称,对应驱动JAR包中的Driver类 |
url | 数据源所在地址 |
username | 访问数据库的用户名 |
password | 访问数据库的密码 |
注意:上表中的属性值在实际配置时,需要根据数据库类型和设置进行相应配置
Spring JDBC配置模板:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- 1配置数据源 -->
<bean id="dataSource" class=
"org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--数据库驱动 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<!--连接数据库的url -->
<property name="url" value="jdbc:mysql://localhost:3306/spring" />
<!--连接数据库的用户名 -->
<property name="username" value="root" />
<!--连接数据库的密码 -->
<property name="password" value="root" />
</bean>
<!-- 2配置JDBC模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 默认必须使用数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!--定义id为accountDao的Bean-->
<bean id="accountDao" class="com.itheima.jdbc.AccountDaoImpl">
<!-- 将jdbcTemplate注入到accountDao实例中 -->
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
</beans>
4.4 Spring JdbcTemplate的常用方法
JdbcTemplate主要提供以下五类方法:
(1)execute()方法:可以用于执行任何SQL语句,一般用于执行DDL语句
(2)update()方法:用于执行新增、修改、删除等语句
(3)batchUpdate()方法:用于执行批处理相关语句
(4)query()方法及queryForXXX方法:用于执行查询相关语句
(5)call()方法:用于执行存储过程、函数相关语句