• SpringBoot整合MyBatis,HiKari、Druid连接池的使用


     

    SpringBoot整合MyBatis

    1、创建项目时勾选mybatis、数据库驱动。

     

    mysql驱动默认是8.x的版本,如果要使用5.x的版本,创建后到pom.xml中改。

    也可以手动添加依赖

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.2</version>  <!-- 这个必须要版本号 -->
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <!-- 默认是8.x的版本,可以自己加<version>指定版本 -->
        <scope>runtime</scope>
    </dependency>
    

      

    2、新建包model,存放实体类

    @Getter
    @Setter
    @ToString
    public class User {
        private int id;
        private String name;
        //......
    }
    

      

    实体类不需要放到spring容器中

    3、新建包dao,存放mapper接口

    public interface UserMapper{
        public User findUserById(Integer id);
    }
    

      

    mapper接口上不需要加注解

    4、resources下新建文件夹mapper,存放mybatis的xml映射文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.chy.mall.dao.UserMapper">
    
        <select id="findUserById" parameterType="integer" resultType="user">
            select * from tb_user where id=#{id}
        </select>
    
    </mapper>
    

      

    5、引导类上加@MapperScan

    @MapperScan("com.chy.mall.dao")  //指定mapper接口位置
    
    // @MapperScan( { "com.chy.mall.dao1" , "com.chy.mall.dao2" } )  //有多个包时写成数组
    

      

    注意是@MapperScan,不是@MapperScans,末尾没有s。
    也可以在每个mapper接口上标注@Mapper,但是很麻烦。

    6、application.properties中添加mybatis的配置

    ###mybatis配置###
    #配置实体类的别名
    mybatis.type-aliases-package=com.chy.mall.model
    #指定映射文件的位置
    mybatis.mapper-locations=classpath:mapper/*Mapper.xml
    

      

    HiKari的使用

    c3p0、dbcp老旧、性能低下,hikari、druid后起之秀,性能方面hikari、druid独一档。
    性能:hikari > druid > tomcat-jdbc > dbcp > c3p0

    HiKariCP,CP是Connection Pool的简写,号称性能最高的连接池。代码经过精简优化,体积很小,稳定可靠、性能极高。hikari的高性能得益于最大限度地避免锁竞争。

    druid是阿里开源的连接池,性能略有不如hikari,但功能全面、扩展性强,对数据库操作有监控、统计功能,便于分析、优化数据库操作。

    springboot 2.x默认使用hikari作为数据库连接池,不需要添加额外依赖,只需在application.properties中配置即可。

    hikari常用配置如下

    ###数据源配置###
    
    #默认就是hikari,可缺省
    #spring.datasource.type=com.zaxxer.hikari.HikariDataSource
    
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/db_mall?serverTimezone=UTC
    spring.datasource.username=chy
    spring.datasource.password=abcd
    
    #默认30000ms,即30s
    #spring.datasource.hikari.connection-timeout=30000
    #默认600000ms,即10min
    #spring.datasource.hikari.idle-timeout=600000
    
    #连接池的最大尺寸(闲置连接+正在使用的连接),默认10
    spring.datasource.hikari.maximum-pool-size=200
    #最小空闲连接数,默认10
    spring.datasource.hikari.minimum-idle=50
    

      

    Druid的使用

    1、添加druid的依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.22</version>
    </dependency>
    
    
    <!-- 也可以使用下面这个 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.22</version>
    </dependency>
    

      

    2、application.properties

    ###数据源配置###
    
    #指定数据源类型为druid
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/db_mall?serverTimezone=UTC
    spring.datasource.username=chy
    spring.datasource.password=abcd
    
    #初始连接数,默认0
    spring.datasource.druid.initial-size=50
    #最小空闲连接数
    spring.datasource.druid.min-idle=30
    #最大活跃连接数,默认8
    spring.datasource.druid.max-active=200
    #以上3个配置项,设置为0表示无限
    
    #获取连接的最大等待时间(池中无空闲连接时最多等待多少ms),默认-1  一直等待,此处设置为30000ms,即30s
    spring.datasource.druid.max-wait=30000
    
    #是否缓存PreparedStatement,默认false
    #spring.datasource.druid.poolPreparedStatements=true
    #缓存的PreparedStatement的最大数量,默认-1  不缓存,大于0时会自动开启PreparedStatement缓存,所以可以缺省上一句配置
    spring.datasource.druid.maxOpenPreparedStatements=20
    

      

    连接池配置说明

    上面的配置,不管是hikari还是druid,都没有使用自己的key来配置数据库驱动、url、username、password,使用自己的key要报错。即不要使用下面的key

    #hikari
    spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/db_mall?serverTimezone=UTC
    spring.datasource.hikari.username=chy
    spring.datasource.hikari.password=abcd
    
    
    #druid
    spring.datasource.druid.driver-class-name=jdbc:mysql://127.0.0.1/db_mall?serverTimezone=UTC
    spring.datasource.druid.url=com.mysql.cj.jdbc.Driver
    spring.datasource.druid.username=chy
    spring.datasource.druid.password=abcd
    

      

    大家看完有什么不懂的欢迎在下方留言评论

  • 相关阅读:
    vimrc 配置 史上最牛
    nmap 黑客 端口扫描(转)
    linux export 命令(转)
    【引用】linux下编译静态库ranlib有什么用
    vim map nmap(转)
    vim 自定义命令 自定义快捷键(转)
    vimrc初学 vim 快捷键 map(转)
    vim 取消 查找 高亮
    Java内存模型(JMM)学习总结
    Struts2和Spring整合
  • 原文地址:https://www.cnblogs.com/lwh1019/p/12952520.html
Copyright © 2020-2023  润新知