• springboot基础(28):jdbcTemplate


    前言

    jdbcTemplate的使用

    如何使用jdbcTemplate

    准备: 已存在的数据表
    在这里插入图片描述

    1. 创建模块并引入依赖
     <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 配置数据源
    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=UTF-8&useSSL=false
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 编写实体
    @Data
    public class Book {
    
        private int id;
        private String name;
        private String type;
        private String description;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 编写测试(查询操作),并执行
    @SpringBootTest
    class SpringbootJdbctemplateApplicationTests {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        @Test
        void testQuery(){
            String sql="select * from book ";
            RowMapper<Book> rm=new RowMapper<Book>() {
                @Override
                public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
                    Book book=new Book();
                    book.setId(rs.getInt("id"));
                    book.setName(rs.getString("name"));
                    book.setType(rs.getString("type"));
                    book.setDescription(rs.getString("description"));
                    return book;
                }
            };
            List<Book> books=jdbcTemplate.query(sql,rm);
            System.out.println(books);
        }
    }    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    执行结果可以看到查到的List集合
    在这里插入图片描述
    5. 编写测试(保存操作),并执行

    @Test
        void testUpdate(){
            String sql="insert into book (name,type,description) VALUES ('hello','测试','测试内容')";
            int i=jdbcTemplate.update(sql);
            System.out.println(i);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行结果可以看到影响的记录行为1
    在这里插入图片描述

    内置数据源

    从上面的例子,我们只是配置了数据源,并没有声明数据源,但是运行日志可以看到系统默认了Hikari数据源
    在这里插入图片描述
    当然我们也可以使用其他数据源。
    Springboot提供了3种内嵌数据源

    • HikariCP: 默认的数据源对象
    • Tomcat提供的数据源: 当Hikari不可用时,并且在web环境时,可以使用tomcat服务器配置的数据源对象
    • Commons DBCP: 前两者都不可用时,可以用使用dbcp数据源.

    通用数据源配置:

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=UTF-8&useSSL=false
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    hikari:

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=UTF-8&useSSL=false #这一行不能声明在hikari的层级之下
        hikari:
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    云文档-本地批量删除文件的BUG和路径修改BUG
    Vue07/Vue 具名插槽 及 作用域插槽( 带数据插槽 ) 作用介绍和说明
    vue165-main.js-vue中的小提示
    微服务—ES数据同步
    Spring的简单使用(3)
    经常遇到的问题
    Windows10 定时拷贝后删除 UBUNTU上的文件
    Kafka的重要组件,谈谈流处理引擎Kafka Stream
    C++ 通过 #include 了解 Compiler 和 Linker
    201.回溯算法:全排列(力扣)
  • 原文地址:https://blog.csdn.net/u011628753/article/details/125522908