一、JDBCTemplate 简介
JDBCTemplate 是 Spring 提供的一套 JDBC 模板框架,其对 JDBC 进行了大量封装,避免了原生 JDBC 中大量的冗余代码,相比原生 JDBC 更为简便易用。Spring Boot 对其提供了自动化配置,我们只需要简单几步便能将其整合到项目中。
二、整合 JDBCTemplate
整合一般来说分为以下几个步骤:导入依赖 -> 编写配置文件 -> 程序中使用,具体步骤如下:
1、创建数据库表
创建数据库 springboot-data
,学生表 student
:
drop database if exists `springboot-data`;
create database `springboot-data`;
use `springboot-data`;
drop table if exists `student`;
create table `student`
(
`id` int(10) not null auto_increment,
`name` varchar(20) not null,
`pwd` varchar(20) not null,
primary key (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
insert into `student` (`name`,`pwd`)
values
('小明','123456'),
('小华','234567'),
('小红','345678');
2、导入相关依赖
创建一个 Spring Boot 项目(默认添加 web 依赖)
在 pom.xml
中 引入 spring-boot-starter-jdbc
与 mysql-connector-java
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
3、编写配置文件
在 resources
目录下创建配置文件 application.yaml
,配置数据库连接的相关参数:
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/springboot-data?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
4、实现 CRUD 操作
创建 controller
包,其下创建 JDBCController ,实现CRUD 操作:
@RestController
@RequestMapping("/students")
public class JDBCController {
@Autowired
private JdbcTemplate jdbcTemplate;
@GetMapping("/list")
public List<Map<String,Object>> userList() {
String sql = "select * from student";
List<Map<String, Object>> list_maps = jdbcTemplate.queryForList(sql);
return list_maps;
}
@GetMapping("/add")
public String addUser() {
String sql = "insert into student(name,pwd) values ('小强','456789')";
jdbcTemplate.update(sql);
return "add success!";
}
@GetMapping("/update/{id}")
public String updateUser(@PathVariable("id") int id) {
String sql = "update student set name=?,pwd=? where id=" + id;
Object[] objects = new Object[2];
objects[0] = "小强222";
objects[1] = "6666666";
jdbcTemplate.update(sql,objects);
return "update success!";
}
@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable("id") int id) {
String sql = "delete from student where id=?";
jdbcTemplate.update(sql,id);
return "delete success!";
}
}
5、测试 CRUD
1、运行程序,在浏览器地址栏中输入 http://localhost:8080/students/list
可以看到,数据表中所有记录以 JSON 的形式返回
2、输入 http://localhost:8080/students/add
可以看到数据表中新增了第 4 条记录
3、输入 http://localhost:8080/students/update/4
可以看到第 4 条记录的 name 字段被修改
4、输入 http://localhost:8080/students/delete/4
可以看到第 4 条记录被删除
至此,Spring Boot 整合 JDBCTemplate 实现基本的 CRUD 操作已完成。