SpringBoot整合JdbcTemplate的示例代码

 更新时间:2022年08月30日 14:08:20   作者:GavinChen_  
JdbcTemplate是Spring框架自带的对JDBC操作的封装,目的是提供统一的模板方法使对数据库的操作更加方便、友好,效率也不错,这篇文章主要介绍了SpringBoot整合JdbcTemplate,需要的朋友可以参考下

前言

Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具。我们可以借助JdbcTemplate来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用jdbc带来的繁琐编码

初始化SpringBoot项目

使用IDEA创建项目

点击File–>New–>Project

点击spring initializr,注意自己的SDK版本,再点击next

填写自己的group、artifact,注意Java version的版本和前面的SDK版本一致,点击next

选择自己要添加的依赖,项目创建的时候会自动加入到maven中,然后
点击next

填写自己的项目名,点击finish

导入JDBC依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>

导入数据库驱动

我这里使用的MySQL数据库,就导入MySQL数据库驱动

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>

修改配置文件

我这里使用的是yml格式配置文件

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8
    username: root
    password: admin
    driver-class-name: com.mysql.jdbc.Driver

数据库sys_user表结构

测试类代码

查询sys_user表数据量

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
        //获取sys_user表数据量
        Long aLong = jdbcTemplate.queryForObject("select count(*) from sys_user", Long.class);
        log.info("记录总数:{}", aLong);
}

运行结果

查询sys_user表一条数据

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
        //获取sys_user表一条数据
        Map<String, Object> map = jdbcTemplate.queryForMap("select * from sys_user where id = 1");
        log.info("map数据为:" +  map);
    }
}

运行结果

查询sys_user表所有数据

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
    	//获取sys_user表所有数据
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from sys_user");
        log.info("list数据为:" + list);
    }
}

新增sys_user表一条数据

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
        //新增一条数据
        int i = jdbcTemplate.update("insert into sys_user(user_name, phone) values(?,?)", new String[]{"小王", "13100720084"});
        log.info("新增了" + i + "条数据");
    }
}

运行结果

修改sys_user表一条数据

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
        //修改一条数据
        int i2 = jdbcTemplate.update("update sys_user set user_name = ? where id = 1", new String[]{"小张"});
        log.info("修改了" + i2 + "条数据");
    }
}

运行结果

删除sys_user表一条数据

package com.gavin.boot;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;

@Slf4j
@SpringBootTest
class BootJdbcApplicationTests {

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Test
    void contextLoads() {
        //删除一条数据
        int i3 = jdbcTemplate.update("delete from sys_user where id = ?", 1);
        log.info("删除了" + i3 + "条数据");
    }
}

运行结果

总结

以上就是SpringBoot整合JdbcTemplate基本内容,其它内容以后慢慢研究。

到此这篇关于SpringBoot整合JdbcTemplate的文章就介绍到这了,更多相关SpringBoot整合JdbcTemplate内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Java Calendar类set()方法的陷阱

    解决Java Calendar类set()方法的陷阱

    这篇文章主要介绍了解决Java Calendar类set()方法的陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 详解Java使用Pipeline对Redis批量读写(hmset&hgetall)

    详解Java使用Pipeline对Redis批量读写(hmset&hgetall)

    本篇文章主要介绍了Java使用Pipeline对Redis批量读写(hmset&hgetall),具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • java 中Map详解及实例代码

    java 中Map详解及实例代码

    这篇文章主要介绍了java 中Map详解及实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • JDK14的新特性NullPointerExceptions的使用

    JDK14的新特性NullPointerExceptions的使用

    这篇文章主要介绍了JDK14的新特性NullPointerExceptions的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Java判断线程池线程是否执行完毕

    Java判断线程池线程是否执行完毕

    这篇文章主要介绍了Java判断线程池线程是否执行完毕,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    这篇文章主要介绍了关于Intellij idea 报错:Error : java 不支持发行版本5的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 基于Java SSM框架实现简易的评教系统

    基于Java SSM框架实现简易的评教系统

    这篇文章主要介绍了通过Java SSM框架实现一个简易的评教系统的示例代码,文中的代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-02-02
  • Java线程中的线程本地变量ThreadLocal详解

    Java线程中的线程本地变量ThreadLocal详解

    这篇文章主要介绍了Java线程中的线程本地变量ThreadLocal详解,ThreadLocal存放的值是线程内共享的,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递,这样处理后,能够优雅的解决一些实际问题,需要的朋友可以参考下
    2023-11-11
  • kettle指定jdk8的路径启动的实现

    kettle指定jdk8的路径启动的实现

    本文主要介绍了指定jdk8的路径启动的实现,通过修改kettle的配置文件来指定使用jdk8版本启动,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • java加密MD5实现及密码验证代码实例

    java加密MD5实现及密码验证代码实例

    这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论