SpringBoot+Druid+Mysql+Mybatis

 

Druid链接池

链接池技术

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

HiKaricp:速度比较快;

       TomCat-jdbc、c3p0、proxoll、bonecpmysql

Druid:功能比较齐全;spring

 开发步骤sql

首先在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依赖是这样的springboot

 

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

而后在application.properties(我的比较倾向)对MySQL,Mybatis进行设置app

 

 具体的就很少说了,这里须要注意的有:async

若是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最基本的整合就完成了,更深刻的设置有待研究.....

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息