看一个实际需求:
如果希望使用spring框架做项目,Spring框架如何处理对数据库的操作呢?
-
方案一:使用之前的JdbcUtils类
-
方案二:spring提供了一个操作数据库(表)的功能强大的类JdbcTemplate。我们可以通过ioc容器来配置一个JdbcTemplate对象,使用它来完成对数据库表的各种操作。
1.基本介绍
JdbcTemplate APIs:下载的文档-spring-5.3.8-dist\spring-framework-5.3.8\docs\javadoc-api\index.html
- 通过Spring可以配置数据源,从而完成对数据表的操作
- JdbcTemplate 是 spring 提供的访问数据库的技术。可以将 JDBC 的常用操作封装为模板方法。
2.使用实例
需求说明:使用 Spring 的方式来完成 JdbcTemplate 配置和使用
一、搭建环境:
-
引入JdbcTemplate 需要的jar包(Spring5)
-
创建数据库spring和表monster
-- 创建数据库 |
|
CREATE DATABASE spring; |
|
USE spring; |
|
-- 创建表monster |
|
CREATE TABLE monster( |
|
id INT PRIMARY KEY, |
|
`name` VARCHAR(64) NOT NULL DEFAULT '', |
|
skill VARCHAR(64) NOT NULL DEFAULT '' |
|
)CHARSET=utf8; |
|
INSERT INTO monster VALUES(100,'青牛怪','吐火'); |
|
INSERT INTO monster VALUES(200,'黄袍怪','吐烟'); |
|
INSERT INTO monster VALUES(300,'蜘蛛怪','吐丝'); |
二、配置DataSource
- 创建配置文件src/jdbc.properties(key值随意)
在spring的ioc容器中,可以通过属性文件给bean注入值
jdbc.user=root |
|
jdbc.pwd=123456 |
|
jdbc.driver=com.mysql.jdbc.Driver |
|
jdbc.url=jdbc:mysql://localhost:3306/spring |
- 创建容器配置文件src/JdbcTemplate_ioc.xml
<!--引入外部的属性文件--> |
|
<context:property-placeholder location="classpath:jdbc.properties"/> |
|
<!--配置数据源对象-DataSource--> |
|
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource"> |
|
<!--给数据源对象配置属性值--> |
|
<property name="user" value="${jdbc.user}"/> |
|
<property name="password" value="${jdbc.pwd}"/> |
|
<property name="driverClass" value="${jdbc.driver}"/> |
|
<property name="jdbcUrl" value="${jdbc.url}"/> |
|
</bean> |
- 测试连接
@Test |
|
public void testDatasourceByJdbcTemplate() throws SQLException {
|
|
//获取容器 |
|
ApplicationContext ioc = |
|
new ClassPathXmlApplicationContext("JdbcTemplate_ioc.xml"); |
|
//因为 ComboPooledDataSource实现了 DataSource接口,这里使用接口类型来获取对象 |
|
DataSource dataSource = ioc.getBean(DataSource.class); |
|
Connection connection = dataSource.getConnection(); |
|
System.out.println("获取到连接connection=" + connection); |
|
connection.close(); |
|
} |
成功连接:
- 配置 JdbcTemplate_ioc.xml,将数据源分配给 JdbcTemplate bean对象
<!--配置JdbcTemplate对象--> |
|
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate"> |
|
<!--给JdbcTemplate对象配置DataSource属性--> |
|
<property name="dataSource" ref="dataSource"/> |
|
</bean> |
2.1添加数据
@Test |
|
public void addDataByJdbcTemplate() {
|
|
//获取容器 |
|
ApplicationContext ioc = |
|
new ClassPathXmlApplicationContext("JdbcTemplate_ioc.xml"); |
|
//获取JdbcTemplate对象 |