一.Spring JDBC 概述
Spring JDBC是Spring所提供的持久层技术,它主要的目的是降低JDBC API的使用难度,以一种更直接,更简洁的方式使用JDBC API. Spring JDBC 模块负责数据库资源和错误处理,大大简化了开发人员对数据库的操作.
二.Spring JDBC的配置
1.下载 Spring JdbcTemplate 的 jar 包
此处我们需要导入Spring jdbc 和 阿里数据源的jar包,它们在Maven仓库中的项目坐标如下:
-
<!-- spring-jdbc -->
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-jdbc
</artifactId>
-
<version>5.2.2.RELEASE
</version>
-
</dependency>
-
<!-- 阿里数据源 -->
-
<dependency>
-
<groupId>com.alibaba
</groupId>
-
<artifactId>druid
</artifactId>
-
<version>1.1.10
</version>
-
</dependency>
注:
-
Spring JDBCjar包提供数据访问层的功能,提供了JdbcTemplate封装的方法操作数据库.我们主要使用它的事物管理功能
-
阿里巴巴数据源提供了数据库连接池功能组件,是一款阿里开源的数据库管理组件,音译为德鲁伊.其中提供了与数据库连接的实现,提供数据库连接池功能
什么是数据库连接池?
我们在进行数据库连接时需要频繁的创建数据库连接对象(Connection)开销比较大,因此提出了数据库连接池的概念 我们使用数据库连接池事先缓存部分连接对象,使用时直接从数据库连接池中获取,使用完毕之后也不尽兴销毁,还回数据库连接池中,减少了创建连接对象,销毁对象所需的时间. 常见的数据库连接池组件:
c3po,dbcp,JNDI,阿里数据源
2.导入属性文件
进行此步骤的前提是我们创建了属性文件并在其中存入了jdbc信息
-
driverName=com.mysql.cj.jdbc.Driver
-
url=jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai
-
uname=XXX
-
psw=XXX
注:
此处为了防止Spring jdbc在获取信息时发生错误,我们需要在此处将username和password进行修改,之后在配置文件中进行配置即可.
<context:property-placeholder location="config.properties"/>
3.管理数据源对象
此步骤进行的是Spring与数据库的链接操作,将属性文件中的信息传入Spring
-
<?xml version="1.0" encoding="UTF-8"?>
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:context=
"http://www.springframework.org/schema/context"
-
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.xsd
-
http://www.springframework.org/schema/context
-
http://www.springframework.org/schema/context/spring-context.xsd">
-
-
<!--配置读取属性文件-->
-
<context:property-placeholder location="classpath:config.properties">
</context:property-placeholder>
-
<!--Spring管理数据源-->
-
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
-
<property name="driverClassName" value="${driverName}">
</property>
-
<property name="url" value="${url}">
</property>
-
<property name="username" value="${uname}">
</property>
-
<property name="password" value="${psw}">
</property>
-
</bean>
-
</beans>
4.在配置文件中创建JdbcTemplate
-
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
-
<property name="dataSource" ref="dataSource">
</property>
-
</bean>
5.在类中获得JdbcTemplate对象,就可以直接使用
-
package com.ffyc.springdemo.dao;
-
-
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.jdbc.core.JdbcTemplate;
-
import org.springframework.stereotype.Repository;
-
-
@Repository
-
public
class
AdminDao {
-
-
@Autowired
-
JdbcTemplate jdbcTemplate;
-
-
public
void
saveAdmin
(){
-
System.out.println(
"保存管理员");
-
jdbcTemplate.update(
"insert into admin(account,password,gender)values (?,?,?)",
"wh",
"111",
"女");
-
}
-
}
-
6.测试类:
此处我们以基于注解的方式进行了SpringBean的配置,其余类在我的SpringBean博客中有介绍.
-
package com.ffyc.springdemo.test;
-
-
import com.ffyc.springdemo.service.AdminService;
-
import org.junit.jupiter.api.Test;
-
import org.springframework.context.ApplicationContext;
-
import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
public
class
Test1 {
-
-
@Test
-
public
void
test
() {
-
-
ApplicationContext
app
=
new
ClassPathXmlApplicationContext(
"spring.xml");
-
AdminService
adminService
= app.getBean(
"adminService", AdminService.class);
-
adminService.saveAdmin();
-
}
-
}
-
这样我们就通过Spring Jdbc实现了JDBC操作,取代了传统jdbc方式的繁琐步骤
注:
Spring JDBC 默认自动向数据库提交事物,我们无需手动提交方可在数据库中查看SQL语句执行结果.
JdbcTemplate 中常用的方法
-
execute:无返回值,可执行 ddl,增删改语句
-
update:执行新增、修改、删除语句
-
queryForXXX:执行查询相关语句
转载:https://blog.csdn.net/weixin_52629592/article/details/127928077