5、SpringBoot2之整合Durid

这篇具有很好参考价值的文章主要介绍了5、SpringBoot2之整合Durid。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建名为springboot_druid的新module,过程参考3.1节

5.1、引入相关依赖

5、SpringBoot2之整合Durid

注意:虽然本文使用的是 spring boot 2.7.18 和 MySQL 5.7 ,但是出于可移植性、可扩展性和兼容性方面的考虑,
druid 的启动器使用的是 spring boot 3 版本的,MySQL 的驱动使用的是 MySQL 8 版本的。

        <!-- jdbc启动器的依赖(包括 jdbctemplate 和事务相关的依赖和配置)-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- druid启动器的依赖  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>1.2.20</version>
        </dependency>

        <!-- MySQL驱动的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

5.2、配置druid相关参数

5、SpringBoot2之整合Durid

注意:在 spring boot 2 中,类似 spring.datasource.druid.url 的参数名称可以省略 druid 写成 spring.datasource.url ,
但是在 spring boot 3 中 druid 不能省略,因此为了能同时适用 spring boot 2 和 3,本文配置示例没有 druid 。

# 连接池类型(核心配置)
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 数据库驱动名称(核心配置)
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库url(核心配置)
spring.datasource.druid.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
# 数据库用户名(核心配置)
spring.datasource.druid.username=root
# 数据库密码(核心配置)
spring.datasource.druid.password=root
# 初始化时建立物理连接的个数
spring.datasource.druid.initial-size=5
# 连接池的最小空闲数量
spring.datasource.druid.min-idle=5
# 连接池最大连接数量
spring.datasource.druid.max-active=20
# 获取连接时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
# 申请连接的时候检测,如果等待时间大于time-between-eviction-runs-millis,执行validation-query检测连接是否有效。
spring.datasource.druid.test-while-idle=true
# 既作为检测的间隔时间,又作为test-while-idle执行的依据
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 销毁线程时,检测当前连接的最后活动时间与当前时间的差值,差值大于该值时关闭当前连接
spring.datasource.druid.min-evictable-idle-time-millis=30000
# 用来检测数据库连接是否有效的sql,必须是一个查询语句(oracle中为 select 1 from dual)
spring.datasource.druid.validation-query=select 1
# 申请连接时会执行validation-query检测连接是否有效,开启会降低性能,默认为true
spring.datasource.druid.test-on-borrow=false
# 归还连接时会执行validation-query检测连接是否有效,开启会降低性能,默认为true
spring.datasource.druid.test-on-return=false
# 是否缓存preparedStatement,也就是PSCache,
# PSCache对支持游标的数据库性能提升巨大,比如说oracle,但在mysql下建议关闭。
spring.datasource.druid.pool-prepared-statements=false
# 要启用PSCache,必须配置大于0,当大于0时,pool-prepared-statements自动触发修改为true,
# 在Druid中,不会存在Oracle的PSCache占用内存过多的问题,所以要启用PSCache时可以把这个数值配置大一些,比如说100
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=-1
# 合并多个DruidDataSource的监控数据
spring.datasource.druid.use-global-data-source-stat=true

5.3、创建实体类

5、SpringBoot2之整合Durid

package online.liaojy.pojo;

import java.io.Serializable;

/**
 * @author liaojy
 * @date 2023/12/21 - 6:24
 */
public class Employee implements Serializable {

    private Integer empId;
    private String empName;
    private Integer age;
    private String sex;
    private String email;

    public Employee() {
    }

    public Employee(Integer empId, String empName, Integer age, String sex, String email) {
        this.empId = empId;
        this.empName = empName;
        this.age = age;
        this.sex = sex;
        this.email = email;
    }

    public Integer getEmpId() {
        return empId;
    }

    public void setEmpId(Integer empId) {
        this.empId = empId;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "empId=" + empId +
                ", empName='" + empName + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                '}';
    }

}

5.4、使用JdbcTemplate查询数据

5、SpringBoot2之整合Durid

注意:在pom中,引入的是jdbc的启动器,除了有一系列业务情景相关的依赖之外,还会有对应的配置;
jdbcTemplate 也会自动被加载到ioc容器中,因此可以直接注入使用;
在编译阶段,因为没有手动使用注解将JdbcTemplate标识为一个bean组件,所以idea可能会提示(误报)找不到bean;
此外,还因为配置的是 druid 数据库连接池,所以 jdbcTemplate 也会自动使用 druid 数据库连接池

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @RequestMapping("/getAllEmployee")
    public List<Employee> getAllEmployee(){
        String sql = "select * from t_emp";
        List<Employee> employeeList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Employee>(Employee.class));
        return employeeList;
    }

5.5、测试效果

5、SpringBoot2之整合Durid文章来源地址https://www.toymoban.com/news/detail-760656.html

到了这里,关于5、SpringBoot2之整合Durid的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7、SpringBoot2之整合事务及AOP

    本文在SpringBoot2之整合Mybatis的基础上进行 注意:只要引入 spring-boot-starter-jdbc 启动器(详见6.1节),spring boot 便会自动配置好 DataSourceTransactionManager ; 因此,只需在方法(或者类)加上 @Transactional 注解,即可进行事务管理。 测试前的数据 测试时发生异常 测试后的数据没变

    2024年02月03日
    浏览(47)
  • java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

    首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 application配置文件中编写如下配置 spring.elasticsearch.hosts: 172.16.5.10:9200 我这里是用的yml格式的 告诉它指向 我们本地的 9200服务 然后 我们在启动类同目录下 创建一个叫 domain的包 放属性类 然后在这个包

    2024年02月19日
    浏览(45)
  • 带你了解SpringBoot---开启Durid 监控

    官方文档 使用手册: https://github.com/alibaba/druid 中文手册: https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 English手册: https://github.com/alibaba/druid/wiki/FAQ Druid Spring Boot Starter 手册:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 基本介绍 HiKariCP: 目前市面上非常优

    2024年02月11日
    浏览(35)
  • 【SpringBoot2】SpringBoot开发实用篇

    ​ 什么是热部署?简单说就是你程序改了,现在要重新启动服务器,嫌麻烦?不用重启,服务器会自己悄悄的把更新后的程序给重新加载一遍,这就是热部署。 ​ 热部署的功能是如何实现的呢?这就要分两种情况来说了,非springboot工程和springboot工程的热部署实现方式完全

    2023年04月25日
    浏览(39)
  • 1、Springboot2简介

    在学习 SpringBoot 之前,建议先具备 SpringMVC(控制层)、Spring(业务层)和 Mybatis(持久层)的相关知识 Spring 框架虽然很出色,但是有一个明显的缺点:配置文件过于繁琐和复杂; 在单体项目中,因为配置文件只需要编写一遍即可,所以该缺点只是一个小问题; 在微服务项目

    2024年02月05日
    浏览(36)
  • SpringBoot2-核心技术(一)

    1. properties 同以前的用法 2. yaml YAML : “YAML Ain‘t Markup Language ”(yaml 不是一种递归标记语言) 的递归缩写, 在开发这种语言时,YAML 的意思是:Yet Another Markup Language (仍是一种标记语言) 非常适合用来做以数据为中心的配置文件 1. 基本语法 key: value ; value与: 之间存在空格

    2024年02月07日
    浏览(39)
  • SpringBoot2.0(Lombok,SpringBoot统一返回封装)

    ​ java工程中,我们要创建很多的java Bean。这些javaBean中都会写getter,setter,equals,hashCode和toString的模板代码,这些代码都没啥技术含量。 ​ 那么我们就是使用Lombok来自动生成这些代码,通过注解的方式。提高我们的工作效率。 ​ Lombok的原理:JSR 269插件化注解处理。就是在

    2024年02月09日
    浏览(36)
  • 【SpringBoot】SpringBoot2.x知识点杂记

    本文仅供学习交流使用 为什么要使用 Spring Boot 因为Spring, SpringMVC 需要使用的大量的配置文件 (xml文件) 还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象 需要了解其他框架配置规则。 SpringBoot 就相当于 不需要配置文件的Spring+SpringMVC。 常用的框架和第三

    2024年02月03日
    浏览(46)
  • SpringBoot2.0集成WebSocket

    适用于单客户端,一个账号登陆一个客户端,登陆多个客户端会报错 The remote endpoint was in state [TEXT_FULL_WRITING]  这是因为此时的session是不同的,只能锁住一个session,解决此问题的方法把全局静态对象锁住,因为账号是唯一的 新建配置类 这个注解需要打上声明是开发环境,否

    2024年02月11日
    浏览(40)
  • 3、SpringBoot2之配置文件

    在 Spring Boot 工程中,实行统一的配置管理,即所有参数配置都会集中到一个固定位置和命名的文件中; 配置文件的固定位置是在 src/main/resources 目录下,该目录是 Spring Boot 工程默认的类路径(classpath); 配置文件的命名格式为:application+后缀+扩展名,扩展名可以是 propert

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包