JdbcTemplate简介
什么是JDBC
JDBC的全称是 Java Data Base Connectivity,翻译过来就是Java数据库连接,是Java中用来规范数据库访问的一组API。JDBC提供的数据库访问标准可以使开发人员以此来构建更高级的 工具和接口,并且编写数据库应用程序。
什么是JdbcTemplate
JDBC作为Java操作数据库的规范化API,虽然可以实现数据库相关操作,但是实现过程比较复杂,上手操作还是比较繁琐的,所以Spring对其进行了更深层次的封装,就是JdbcTemplate。使用JdbcTemplate可以使开发人员使用更加简洁的代码实现对数据库的所有操作。
Springboot集成JdbcTemplate
导入jar包
<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>
配置application.properties
spring.datasource.name=test-datasource
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=GMT&characterEncoding=utf8&autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root123
配置数据源
在IDEA右侧找到database卡片,选择添加mysql数据源,配置以下信息,完成Mysql连接。
\
JdbcTemplate增删改查
创建数据库test,然后创建一个表,表明随便起。然后在表里创建 id、name、age三个字段,id为自增主键。创建数据库和表的过程可以用sql语句或者可视化工具。SQL语句:
CREATE DATABASE `test`CHARACTER SET utf8mb3;
USE `test`;
CREATE TABLE `test`.`test` ( `id` INT(5) NOT NULL AUTO_INCREMENT, `name` CHAR(10) NOT NULL DEFAULT '""', `age` INT(5) NOT NULL, PRIMARY KEY (`id`) ) CHARSET=utf8mb3;
数据库和表创建成功之后新建JdbcController,内部定义增删改查的相关方法
class JdbcController {
@Autowired
lateinit var jdbcTemplate : JdbcTemplate
// 新增一条记录
@GetMapping("/insert")
fun insert(name: String, age: Int): String? {
if (StringUtils.isEmpty(name) || age==0) {
return "参数异常"
}
jdbcTemplate.execute("insert into test(name,age) values ("$name","$age")")
// val sql="INSERT INTO test(name,age) VALUES ('yang',18)"
// jdbcTemplate.execute(sql)
return "SQL执行完毕"
}
// 删除一条记录
@GetMapping("/delete")
fun delete(id: Int): String? {
if (id < 0) {
return "参数异常"
}
val result = jdbcTemplate.queryForList(
"select * from test where id = "$id""
)
if (CollectionUtils.isEmpty(result)) {
return "不存在该记录"
}
jdbcTemplate.execute("delete from test where id="$id"")
return "SQL执行完毕"
}
// 修改一条记录
@GetMapping("/update")
fun update( id:Int,name: String,age: Int): String? {
if (StringUtils.isEmpty(name) || age==0) {
return "参数异常"
}
val result = jdbcTemplate.queryForList(
"select * from test where id = "$id""
)
if (CollectionUtils.isEmpty(result)) {
return "不存在该记录"
}
jdbcTemplate.execute("update test set name ="$name", age= "$age" where id="$id"")
return "SQL执行完毕"
}
// 查询所有记录
@GetMapping("/queryAll")
fun queryAll(): List<Map<String, Any>> {
return jdbcTemplate.queryForList("select * from test")
}
}
接下来就可以在浏览器或者postman中验证是否能够顺利执行增删改查相关操作了。