Spring JDBC模块主要由四个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)。具体说明如下表。
包名 | 说明 |
---|---|
core | 包含了JDBC的核心功能,包括JdbcTemplatea类、SimpleJdbcInsert类、SimpleJdbcCall类以及NamedParameterJdbcTemplate类 |
dataSource | 访问数据源的实用工具类,它有多种数据源的实现,可以在JavaEE容器外部测试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?serverTimezone=GMT"/>
<!--连接数据库的用户名 -->
<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>
上述代码中dataSource的配置就是JDBC连接数据库时所需的4个属性。driverClassName时所使用的驱动名称,对应驱动jar包中的Driver类。url是数据源所在地址。username是访问数据库的用户名。password是访问数据库的密码。
四个属性,需要根据数据库类型或者机器配置的不同设置相应的属性值。如果数据库不在本地,则需要将地址中的localhost替换成相应的主机IP;如果修改过MySQL数据库的端口号(默认为3306),则需要加上修改过后的端口号,如果未修改,则可以省略。
定义JdbcTemplate时,需要将dataSource注入到JdbcTemplate中,而其他需要使用JdbcTemplate的Bean,也需要将JdbcTemplate注入到该Bean中(通常注入到Dao类中,在Dao类中进行与数据库的相关操作)。