• 【springboot】19、数据库操作


    基本说明

    这篇文章介绍如何在springboot的项目中进行数据库的连接,完成数据库操作。

    默认数据源HikariDataSource

    HikariDataSource是springboot的默认数据源,性能十分优秀,我们如果想要进行数据库操作,需要引入相应的starter

            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-data-jdbcartifactId>
            dependency>
    
    • 1
    • 2
    • 3
    • 4

    在这个starter里面就有关于HikariDataSource的引入

    在这里插入图片描述

    Spring Boot 不知道项目要操作 Mysql 还是 Oracle,或者是其他数据库 ,所以需要在 pom.xml 指定导入数据库驱动

            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>5.1.49version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    接下来就是配置数据库的基本信息了,我们在配置文件yaml中进行配置,数据库的配置信息是基于DataSourceProperties这个类的
    在这里插入图片描述

    下面就是该类的一些字段

    在这里插入图片描述

    我们需要配置的就4个,就是用户名,密码,驱动类名和url

    在这里插入图片描述

    把这些配置完成之后我们就可以直接使用了,我们使用JdbcTemplate来测试一下
    下面是我创建的一张表,里面有3条信息,现在就是要使用JdbcTemplate完成该表的查询

    在这里插入图片描述

    测试代码如下

    @Data
    public class People {
        private Integer id;
        private String name;
        private String gender;
        private Integer age;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    @SpringBootTest
    public class ApplicationTest {
    
        @Resource
        private JdbcTemplate jdbcTemplate;
    
        @Test
        public void t1() {
            BeanPropertyRowMapper<People> rowMapper = new BeanPropertyRowMapper<>(People.class);
            String sql = "select * from people";
            List<People> peopleList = jdbcTemplate.query(sql, rowMapper);
            System.out.println("\n----------------start----------------");
            System.out.println(Objects.requireNonNull(jdbcTemplate.getDataSource()).getClass());
            for (People people : peopleList) {
                System.out.println(people);
            }
            System.out.println("-----------------end-----------------\n");
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    运行代码,查看控制台输出
    在这里插入图片描述
    可以发现已经完成了查询,也就是说明数据库的连接已经没有问题了。还可以看见我们springboot使用的默认数据源确实是HikariDataSource。

    切换数据源为Druid

    上面我们使用的是默认数据源,这里我就来介绍如何进行切换,以Druid为例子,首先我们现需要引入druid的相关依赖

            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>druidartifactId>
                <version>1.2.15version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    然后创建一个配置类,在这个类里面注入一个DruidDataSource

    @Configuration
    public class DruidConfig {
    
        @ConfigurationProperties("spring.datasource")
        @Bean
        public DataSource dataSource(){
            return new DruidDataSource();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    @ConfigurationProperties(“spring.datasource”)这行代码的意思就是DruidDataSource要去读取配置文件中关于spring.datasource信息,配置文件内容如下
    在这里插入图片描述
    这样配置之后,我们的数据源就已经是Druid了,还是运行上面的测试代码,查看控制台输出
    在这里插入图片描述
    可以发现数据源已经切换为Druid了。

  • 相关阅读:
    Spring beans
    微信小程序阻止返回事件
    uniapp微信小程序开发踩坑日记:Vue3 + uniapp项目引入Echarts图表库
    动态规划 DP专题
    HTML5期末大作业:基于HTML+CSS+JavaScript实现中国风文化传媒企业官网源码
    linux Ubuntu 22.04工作区workspace介绍
    SpringBoot中使用注解方式拦截恶意访问的IP
    计算机视觉与深度学习-循环神经网络与注意力机制-Attention(注意力机制)-【北邮鲁鹏】
    redis的安装与应用
    代码随想录算法训练营第六十天| 739. 每日温度、 496.下一个更大元素 I
  • 原文地址:https://blog.csdn.net/m0_51545690/article/details/127920165