SpringBoot集成JdbcTemplate

276 阅读2分钟

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中验证是否能够顺利执行增删改查相关操作了。