欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot 整合mybatis和druid数据源连接池

程序员文章站 2022-07-15 10:44:02
...

1 添加依赖

<!--mybatis-->
<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>
            <!--注释掉-->
            <!--<scope>runtime</scope>-->
</dependency>
<!--阿里巴巴druid数据源-->
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
</dependency>

2 修改application.properties文件,注意url连接字符串,最好一样,不然会出现莫名其妙的问题

# 数据库访问配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&tinyInt1isBit=false
spring.datasource.username=root
spring.datasource.password=123456
# 下面为连接池的补充设置,应用到上面所有数据源中
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
spring.datasource.logSlowSql=true

# 注意:对应实体类的路径,多个package之间可以用逗号
mybatis.type-aliases-package=com.baidu.mybatis_test_1.domain
#注意:一定要对应mapper映射xml文件的所在路径
mybatis.mapper-locations=classpath:mapper/*.xml
#开启控制台打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# mybatis 下划线转驼峰配置,两者都可以
#mybatis.configuration.mapUnderscoreToCamelCase=true
mybatis.configuration.map-underscore-to-camel-case=true

3 开始编写dao接口,注意:此处使用的是 注解方式,没有用xml映射 ( 两者只能二选一)

package com.baidu.mybatis_test_1.dao;

import com.baidu.mybatis_test_1.domain.User;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.FetchType;
import java.util.List;

public interface UserDao {

    @Select(value = "select * from user where id=#{userId}")
    User getUserByID(Integer userId);


    @Insert(value = "insert into user (username,password) values(#{userName},#{userPwd})")
    Integer addUser(User user);


    @Delete(value = "delete from user where id=#{userId}")
    Integer delUser(Integer userId);
}

4 修改启动类添加@MapperScan注解,扫描Dao接口的所在包

@SpringBootApplication
@MapperScan("com.baidu.mybatis_test_1.dao")
public class MybatisTest1Application {
    public static void main(String[] args) {
        SpringApplication.run(MybatisTest1Application.class, args);
    }
}

经过以上的步骤,就整合完成了,剩下的该怎么用怎么用,如编写测试类用@Autowired调用等,pojo等已经省略,非核心代码,请详解