1.Spring JdbcTemplate 的解析
针对数据库的操作,Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础,其他更高层次的抽象类却是构建于JdbcTemplate类之上。可以说,JdbcTemplate类是SpringJDBC的核心类。
JdbcTemplate类的继承关系十分简单。它继承自抽象类JdbcAccessor,同时实现了JdbcOperations 接口,JdbcTemplate类的直接父类是 JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性,具体如下。
•DataSource:其主要功能是获取数据库连接,具体实现时还可以引入对数据库连接的缓冲池和分布式事务的支持,它可以作为访问数据库资源的标准接口。
•SQLExceptionTranslator:org.springframework.jdbc.support.SQLExceptionTranslator接口负责对 SQLException进行转译工作。通过必要的设置或者获取SQLExceptionTranslator中的方法,可以使JdbcTemplate在需要处理SQLException时,委托SQLExceptionTranslator的实现类来完成相关的转译工作。
JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作。
2.Spring JDBC的配置
Spring JDBC模块主要由4个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)。

Spring JDBC 中的主要包及说明
包名 说明 core 包含了JDBC 的核心功能,包括JdbcTemplate类、SimpleJdbclnsert类、SimpleJdbcCallcore 类以及 NamedParameterJdbcTemplate类 dataSource 访问数据源的实用工具类,它有多种数据源的实现,可以在Java EE容器外部测试JDBC 代码 object 以面向对象的方式访问数据库,它允许执行查询并将返回结果作为业务对象,可以在数据表的列和业务对象的属性之间映射查询结果 support 包含了core和object包的支持类,例如,提供异常转换功能的SQLException类可以看出,Spring对数据库的操作都封装在了这几个包中,而想要使用SpringJDBC,就需要对其进行配置。在Spring中,JDBC的配置是在配置文件applicationContext.xml中完成的。
其配置模板:
<?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>
<!--3配置注入类 -->
<bean id="xxx" class="Xxx">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<!--
...
...
...
-->
</beans>
在上述代码中,定义了3个Bean,分别是dataSource、jdbcTemplate和需要注入类的bean。其中 dataSource 对应的 org.springframework.jdbc.datasource.DriverManagerDataSource类用于对数据源进行配置,jdbcTemplate对应的 org.springframework.jdbc.core.JdbcTemplate类中定义了JdbcTemplate的相关配置。上述代码中dataSource的配置就是JDBC连接数据库时所需的4个属性。
4个属性,需要根据数据库类型或者机器配置的不同设置相应的属性值。例如,如果数据库类型不同,需要更改驱动名称;如果数据库不在本地,则需要将地址中的 localhost替换成相应的主机IP;如果修改过MySQL数据库的立瑞口号(默认为3306),则需要加上修改后的端口号,如果未修改,则端口号可以省略;同时连接数据库的用户名和密码需要与数据库创建时设置的用户名和密码保持一致,本示例中Spring数据库的用户名和密码都是root。
| 属性名 | 含义 |
|---|---|
| driverClassName | 所使用的驱动名称,对应驱动JAR包中的Driver类 |
| url | 数据源所在地址 |
| username | 访问数据库的用户名 |
| password | 访问数据库的密码 |
定义 JdbcTemplate 时,需要将 dataSource 注入到JdbcTemplate中,而其他需要使用JdbcTemplate的 Bean,也需要将JdbcTemplate 注入到该Bean中(通常注入到Dao类中,在Dao类中进行与数据库的相关操作)。
本文介绍了Spring框架中的JdbcTemplate,它是Spring JDBC的核心,负责数据库操作。详细讲解了JdbcTemplate的继承结构和核心功能,如DataSource和SQLExceptionTranslator。此外,还阐述了Spring JDBC的配置,包括核心包、数据源包等组成部分,并给出了配置模板,强调了dataSource和jdbcTemplate的配置项及其重要性,如数据库连接的属性设置。
985

被折叠的 条评论
为什么被折叠?



