• SpringBoot+Druid+Mysql+Mybatis


    Druid连接池

    连接池技术

    连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中。当客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中

    HiKaricp:速度比较快;

           TomCat-jdbc、c3p0、proxoll、bonecp

    Druid:功能比较齐全;

     开发步骤

    首先在pom.xml引入所需要的依赖(mysql version按个人实际安装的版本)

       <!--mysql依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.15</version>
            </dependency>
            <!--mybatis依赖-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.0</version>
            </dependency>
            <!-- 阿里系的Druid依赖包 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.10</version>
            </dependency>

     注意:引入的依赖一定要正确

    刚开始按网上的某些教程引入的druid依赖是这样的

     结果一直引入失败,花了将近一个小时,实在不想吐糟.....

    然后在application.properties(个人比较倾向)对MySQL,Mybatis进行设置

     具体的就不多说了,这里需要注意的有:

    如果MySQL是5.X版本的话----spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver

    Mybatis的xml映射文件路径SpringBoot默认是放在resources目录下,如果想自定义文件路径跟dao层在同一目录下,需要在pom.xml中设置(大概原因是resources的路径下资源springboot默认是不编译的,需要自己配置,如果不配置,在启动的时候就会提示找不到dao层里的方法)

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>

    ---springboot默认的连接池是HiKaricp,配置Mysql连接的是spring.datasource.xxxxx,但这里使用的是阿里的Druid连接池,

    所以一定要配置正确----spring.datasource.druid.xxxxx,否则运行就会出错....

    Druid的配置还是蛮多的,这里附上本人application.properties的druid配置

    #连接池指定 springboot2.0版本默认使用HicariCp 此处替换成Druid
    #为下面的连接池的补充设置,应用到上面所有数据源中
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    # 初始化大小,最小,最大
    spring.datasource.druid.initial-size=1
    spring.datasource.druid.min-idle=3
    spring.datasource.druid.max-active=20
    spring.datasource.druid.async-init=false
    #配置获取等待连接超时的时间
    spring.datasource.druid.max-wait=60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    spring.datasource.druid.minEvictableIdleTimeMillis=300000
    spring.datasource.druid.validationQuery=SELECT 'x'
    spring.datasource.druid.testWhileIdle=true
    spring.datasource.druid.testOnBorrow=false
    spring.datasource.druid.testOnReturn=false
    # 是否缓存preparedStatement,打开PSCache,并且指定每个连接上PSCache的大小,官方建议MySQL下关闭,如果用于SQL防火墙,建议打开
    spring.datasource.druid.poolPreparedStatements=true
    spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    #spring.datasource.druid.filters=stat,wall,log4j
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    application.properties

    启用单元测试

     

     结果(与application.properties设的值对应上)

     

    (很多细节一定要注意,看似不起眼,一旦出错,半天也找不到原因!反正采坑一时爽,一直才坑一直爽...)

     这样SpringBoot+MySQL+Mybatis+Druid最基本的整合就完成了,更深入的设置有待研究.....

  • 相关阅读:
    python异常处理与上下文管理器
    SpringBoot-MongoDB 索引冲突分析及解决
    补习系列(13)-springboot redis 与发布订阅
    带着canvas去流浪系列之八 碰撞
    带着canvas去流浪系列之九 粒子动画
    通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门
    Python小数据保存,有多少中分类?不妨看看他们的类比与推荐方案...
    免费试用 | 多模 NoSQL 服务GeminiDB for Cassandra 全球首发
    Vue+ElementUI项目使用webpack输出MPA
    shell的shift用法
  • 原文地址:https://www.cnblogs.com/wx60079/p/12539534.html
Copyright © 2020-2023  润新知