关键词:
网上找了很多关于springboot+druid+mybatis-Plus的配置,遇见的很多问题 也没找到好的解决方案。折腾了好几天终于自己配置通过了。
springboot的pom文件
1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>2.0.4.RELEASE</version> 5 <relativePath/> <!-- lookup parent from repository --> 6 </parent> 7 8 <properties> 9 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 10 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 11 <java.version>1.8</java.version> 12 <mybatisplus.version>2.2.0</mybatisplus.version> 13 <mybatisplus-spring-boot-starter.version>1.0.5</mybatisplus-spring-boot-starter.version> 14 </properties> 15 16 <dependencies> 17 <dependency> 18 <groupId>org.springframework.boot</groupId> 19 <artifactId>spring-boot-starter-web</artifactId> 20 </dependency> 21 <dependency> 22 <groupId>org.springframework.boot</groupId> 23 <artifactId>spring-boot-devtools</artifactId> 24 </dependency> 25 <!--mybatis plus start--> 26 <dependency> 27 <groupId>com.baomidou</groupId> 28 <artifactId>mybatisplus-spring-boot-starter</artifactId> 29 <version>$mybatisplus-spring-boot-starter.version</version> 30 </dependency> 31 <dependency> 32 <groupId>com.baomidou</groupId> 33 <artifactId>mybatis-plus</artifactId> 34 <version>$mybatisplus.version</version> 35 </dependency> 36 <!--mybatis-plus end--> 37 38 <dependency> 39 <groupId>mysql</groupId> 40 <artifactId>mysql-connector-java</artifactId> 41 <scope>runtime</scope> 42 </dependency> 43 <dependency> 44 <groupId>org.springframework.boot</groupId> 45 <artifactId>spring-boot-starter-tomcat</artifactId> 46 <scope>provided</scope> 47 </dependency> 48 <dependency> 49 <groupId>org.springframework.boot</groupId> 50 <artifactId>spring-boot-starter-test</artifactId> 51 <scope>test</scope> 52 </dependency> 53 <!--配置druid数据源--> 54 <dependency> 55 <groupId>com.alibaba</groupId> 56 <artifactId>druid</artifactId> 57 <version>1.1.9</version> 58 </dependency> 59 </dependencies>
application.yml 文件
1 spring: 2 datasource: 3 url: jdbc:mysql://xxxx/selll?useUnicode=true&characterEncoding=utf-8&useSSL=false 4 username: root 5 password: xxx 6 driver-class-name: com.mysql.jdbc.Driver 7 platform: mysql 8 type: com.alibaba.druid.pool.DruidDataSource 9 # 下面为连接池的补充设置,应用到上面所有数据源中 10 # 初始化大小,最小,最大 11 initialSize: 1 12 minIdle: 3 13 maxActive: 20 14 # 配置获取连接等待超时的时间 15 maxWait: 60000 16 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 17 timeBetweenEvictionRunsMillis: 60000 18 # 配置一个连接在池中最小生存的时间,单位是毫秒 19 minEvictableIdleTimeMillis: 30000 20 validationQuery: select ‘x‘ 21 testWhileIdle: true 22 testOnBorrow: false 23 testOnReturn: false 24 # 打开PSCache,并且指定每个连接上PSCache的大小 25 poolPreparedStatements: true 26 maxPoolPreparedStatementPerConnectionSize: 20 27 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,‘wall‘用于防火墙 28 filters: stat,wall,slf4j 29 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 30 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 31 # 合并多个DruidDataSource的监控数据 32 #useGlobalDataSourceStat: true 33 server: 34 port: 8080 35 mybatis-plus: 36 mapper-locations: mapper/*.xml 37 type-aliases-package: com.wsy.dcxt.pojo 38 global-config: 39 id-type: 0 40 field-strategy: 2 41 capital-mode: true 42 refresh-mapper: true
数据源的配置
1 package com.wsy.dcxt.config.dao; 2 3 import java.beans.PropertyVetoException; 4 5 import com.alibaba.druid.pool.DruidDataSource; 6 import org.mybatis.spring.annotation.MapperScan; 7 import org.springframework.beans.factory.annotation.Value; 8 import org.springframework.boot.context.properties.ConfigurationProperties; 9 import org.springframework.context.annotation.Bean; 10 import org.springframework.context.annotation.Configuration; 11 12 import javax.sql.DataSource; 13 14 /** 15 * 配置datasource到ioc容器里面 16 * 17 * @author xiangze 18 * 19 */ 20 @Configuration 21 @MapperScan(basePackages = "com.wsy.dcxt.dao") 22 public class DataSourceConfiguration 23 @Value("$spring.datasource.driver-class-name") 24 private String jdbcDriver; 25 @Value("$spring.datasource.url") 26 private String jdbcUrl; 27 @Value("$spring.datasource.username") 28 private String jdbcUsername; 29 @Value("$spring.datasource.password") 30 private String jdbcPassword; 31 32 33 /** 34 * 生成与spring-dao.xml对应的bean dataSource 35 * 36 * @return 37 * @throws PropertyVetoException 38 */ 39 @Bean(name = "dataSource") 40 @ConfigurationProperties(prefix = "spring.datasource") 41 public DataSource dataSource() 42 return new DruidDataSource(); 43 44 45
Mybatis-Plus的配置
1 package com.wsy.dcxt.config.dao; 2 3 import java.io.IOException; 4 5 import javax.sql.DataSource; 6 import org.apache.ibatis.plugin.Interceptor; 7 import com.alibaba.druid.pool.DruidDataSource; 8 import com.baomidou.mybatisplus.MybatisSessionFactoryBuilder; 9 import com.baomidou.mybatisplus.entity.GlobalConfiguration; 10 import com.baomidou.mybatisplus.plugins.PaginationInterceptor; 11 import com.baomidou.mybatisplus.plugins.PerformanceInterceptor; 12 import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean; 13 import org.apache.ibatis.session.SqlSessionFactory; 14 import org.slf4j.Logger; 15 import org.slf4j.LoggerFactory; 16 import org.springframework.beans.factory.annotation.Autowired; 17 import org.springframework.beans.factory.annotation.Qualifier; 18 import org.springframework.beans.factory.annotation.Value; 19 import org.springframework.context.annotation.Bean; 20 import org.springframework.context.annotation.Configuration; 21 import org.springframework.core.io.support.PathMatchingResourcePatternResolver; 22 import org.springframework.core.io.support.ResourcePatternResolver; 23 import org.springframework.jdbc.datasource.DataSourceTransactionManager; 24 25 @Configuration 26 public class MybatisPlusConfig 27 private static final Logger log= LoggerFactory.getLogger(DataSourceConfiguration.class); 28 @Autowired 29 private DataSource dataSource; 30 @Value("$mybatis-plus.global-config.id-type") 31 private Integer idType; 32 @Value("$mybatis-plus.global-config.field-strategy") 33 private int fieldStrategy; 34 @Value("$mybatis-plus.global-config.capital-mode") 35 private boolean capitalMode; 36 @Value("$mybatis-plus.mapper-locations") 37 private String mapperLocations; 38 @Value("$mybatis-plus.type-aliases-package") 39 private String typeAliasesPackage; 40 @Value("$mybatis-plus.global-config.refresh-mapper") 41 private boolean refreshMapper; 42 43 //mybatis plus 全局配置 44 @Bean(name = "globalConfig") 45 public GlobalConfiguration globalConfiguration() 46 log.info("初始化GlobalConfiguration"); 47 GlobalConfiguration configuration=new GlobalConfiguration(); 48 //主键策略 49 configuration.setRefresh(refreshMapper); 50 configuration.setIdType(idType); 51 //字段策略 52 configuration.setFieldStrategy(fieldStrategy); 53 //数据库大写 下划线转换 54 configuration.setCapitalMode(capitalMode); 55 return configuration; 56 57 @Bean(name = "sqlSessionFactory") 58 public SqlSessionFactory createSqlSessionFactoryBean(@Qualifier(value = "globalConfig") GlobalConfiguration configuration) throws Exception 59 log.info("初始化SqlSessionFactory"); 60 MybatisSqlSessionFactoryBean sqlSessionFactoryBean=new MybatisSqlSessionFactoryBean(); 61 sqlSessionFactoryBean.setDataSource(dataSource); 62 Interceptor[] interceptor=new PaginationInterceptor(); 63 sqlSessionFactoryBean.setPlugins(interceptor); 64 ResourcePatternResolver resolver=new PathMatchingResourcePatternResolver(); 65 try 66 sqlSessionFactoryBean.setGlobalConfig(configuration); 67 sqlSessionFactoryBean.setMapperLocations(resolver.getResources(mapperLocations)); 68 sqlSessionFactoryBean.setTypeAliasesPackage(typeAliasesPackage); 69 return sqlSessionFactoryBean.getObject(); 70 catch (Exception e) 71 e.printStackTrace(); 72 73 return sqlSessionFactoryBean.getObject(); 74 75 @Bean(name = "transactionManager") 76 public DataSourceTransactionManager transactionManager() 77 log.info("初始化transactionManager"); 78 return new DataSourceTransactionManager(dataSource); 79 80 81 82 83 84
Druid对于性能检测的配置
DruidStatFilter
1 package com.wsy.dcxt.config.dao; 2 3 import com.alibaba.druid.support.http.WebStatFilter; 4 5 import javax.servlet.annotation.WebFilter; 6 import javax.servlet.annotation.WebInitParam; 7 8 @WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*", 9 initParams = 10 @WebInitParam(name = "exclusions", 11 value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*") ) 12 public class DruidStatFilter extends WebStatFilter 13 14
DruidStatViewServlet
1 package com.wsy.dcxt.config.dao; 2 3 import com.alibaba.druid.support.http.StatViewServlet; 4 5 import javax.servlet.annotation.WebInitParam; 6 import javax.servlet.annotation.WebServlet; 7 8 /** 9 * Druid 的数据源状态监控 10 */ 11 @WebServlet(urlPatterns = "/druid/*", 12 initParams = 13 @WebInitParam(name = "allow",value = "127.0.0.1"), 14 @WebInitParam(name = "deny",value = "192.168.1.3"), 15 @WebInitParam(name ="loginUsername",value = "admin"), 16 @WebInitParam(name = "loginPassword",value = "123456"), 17 @WebInitParam(name = "resetEnable",value = "false")//禁止html页面上reset All功能 18 ) 19 public class DruidStatViewServlet extends StatViewServlet 20 private static final long serialVersionUID = 1L; 21
打开浏览器,输入配置allow的ip 用户名 密码 即可访问到性能检测面板
注: 记得在主类上添加
@ServletComponentScan 注解 不然会报404
对于传统的xml配置.测试了一个查看所有用户的方法
1 package com.wsy.dcxt.dao; 2 3 import com.wsy.dcxt.pojo.User; 4 import com.baomidou.mybatisplus.mapper.BaseMapper; 5 import org.apache.ibatis.annotations.Insert; 6 7 import java.util.List; 8 9 public interface UserMapper extends BaseMapper<User> 10 11 12 List<User> findAllUsers(); 13
介绍UserMapper.java和UserMapper.xml
1 package com.wsy.dcxt.dao; 2 3 import com.wsy.dcxt.pojo.User; 4 import com.baomidou.mybatisplus.mapper.BaseMapper; 5 import org.apache.ibatis.annotations.Insert; 6 7 import java.util.List; 8 9 public interface UserMapper extends BaseMapper<User> 10 11 12 List<User> findAllUsers(); 13
UserMapper.xml 记得统一 src/main/resouce/mapper (根据yml 文件的配置走)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="com.wsy.dcxt.dao.UserMapper"> 6 <select id="findAllUsers" resultType="user"> 7 select * from user 8 </select> 9 </mapper>
最后贴出测试类,开森一会儿
1 package com.wsy.dcxt.dao; 2 3 import com.wsy.dcxt.pojo.User; 4 import com.wsy.dcxt.service.UserService; 5 import org.junit.Test; 6 import org.junit.runner.RunWith; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.boot.test.context.SpringBootTest; 9 import org.springframework.test.context.junit4.SpringRunner; 10 11 import java.util.List; 12 13 import static org.junit.Assert.assertEquals; 14 15 @SpringBootTest 16 @RunWith(SpringRunner.class) 17 public class TestUserMapper 18 @Autowired 19 private UserMapper userMapper; 20 @Test 21 public void testMapper() 22 List<User> users = userMapper.findAllUsers(); 23 assertEquals(3,users.size()); 24 25 26 27 @Test 28 public void insertUser() 29 User user =new User(); 30 user.setPassword("123"); 31 user.setUsername("90"); 32 int result=userMapper.insert(user); 33 System.out.println(result); 34 35 36
好多次的InvalidBound 超级神奇 有这么几处需要切记!切记!
<1>,Mapper.java的方法和mapper.xml的方法是否匹配
<2>,namespace 是否填写正确
<3>,yml 中 读取mapper.xml的路径是否正确
<4>,mapperScan注释是否调用
springboot+mybatis+druid+pagehelper实现多数据源并分页
前言本篇文章主要讲述的是SpringBoot整合Mybatis、Druid和PageHelper并实现多数据源和分页。其中SpringBoot整合Mybatis这块,在之前的的一篇文章中已经讲述了,这里就不过多说明了。重点是讲述在多数据源下的如何配置使用Druid和PageHelpe... 查看详情
springboot--整合mybatis+druid(代码片段)
...,首先替换默认数据源为阿里德鲁伊并添加监控,其次是SpringBoot下使用Mybatis替换数据源为德鲁伊 首先在配置文件里配置好数据库连接的基本信息,如usernamepasswordurl等,重要的是把默认的type换成Druid。这样做数据源已经换成... 查看详情
springboot+mybatis+druid配置多数据源(mysql+postgre)
springboot+mybatis+Druid配置多数据源(mysql+postgre)引入pom依赖设置application多数据源config配置db1config配置(主数据库配置)db2config配置(其他数据库)事务处理mapper层springboot+mybatis+Druid配置多数据源(mysql+postgre)参考资料:第八章springboot+mybatis+... 查看详情
springboot整合mybatis
1、springboot配置数据库连接池druid2、springboot整合mybatis3、springboot整合pagehelper springboot配置数据库连接池druid 新建springboot项目 相关pom依赖druid所需pom依赖 <dependency><groupId> 查看详情
springboot配置mysql,mybatis,druid
配置DRUID连接池MYSQL数据库MYBATIS持久层框架添加依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency> 查看详情
springboot入门之基于druid配置mybatis多数据源
...处理,这篇了解下使用基于基于Druid配置Mybatis多数据源。SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,SpringBoot就会基于约定根据配置信息实例化对象,但是一般大型的项目都是有多个子系统或者多个数据... 查看详情
springboot+mybatis+druid数据库连接池
参考博客https://blog.csdn.net/liuxiao723846/article/details/804560251、先在pom.xml中引入druid依赖包<!--连接池--><!--Druid数据连接池依赖--><dependency><groupId>com.alibaba</groupId><artifactI 查看详情
idea搭建springboot项目:springboot+mybatis+druid+mybatis-generator(代码片段)
今天第一次使用IDEA开发工具,搭建SpringBoot项目,记录下重点步骤。1、IDEA创建基于Maven管理的Java项目。2、pom.xml文件添加jar包依赖:SpringBoot版本、MyBatis、MySQL8驱动和AlibabaDruid数据库连接池。插件依赖:添加maven插... 查看详情
springboot+druid+mybatis-plus配置详解(代码片段)
网上找了很多关于springboot+druid+mybatis-Plus的配置,遇见的很多问题也没找到好的解决方案。折腾了好几天终于自己配置通过了。 springboot的pom文件1<parent>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-s 查看详情
shardingsphere多数据源(springboot+mybatis+shardingsphere+druid)
org.springframeword.boot:spring-boot-starer-web:2.0.4releaseio.shardingsphere:sharding-jdbc-spring-boot-starter:3.0.0M3org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1com.alibaba:druid-spring 查看详情
springboot2.0引入mybatis-plus-druid
pom 数据源配置 MybatisPlus配置 实体类 参考项目 查看详情
springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置
目录在新建的springboot项目pom文件中新添druid连接池的依赖在application.properties配置文件中添加配置配置静态文件目录和模板文件目录@(springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置)在新建的springb... 查看详情
springboot使用druid与mybatis-plus整合(代码片段)
SpringBoot使用Druid与Mybatis-plus整合需要导入的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependenc 查看详情
springboot2+druid+mybatis多数据源配置(代码片段)
...案。读写分离会使用多数据源的使用。下面记录如何搭建SpringBoot2+Druid+Mybatis 多数据源配置以及在使用过程遇到的问题。一、先从pom.xml入手(使用springboot2的版本)<parent><groupId>org.springframework.boot&l 查看详情
springboot(12):集成druid
一、添加依赖<!--mybatis-开始--><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> 查看详情
shirodemo:springboot+shiro+druid+mybatis(代码片段)
访问start.spring.io生成项目: 然后选择依赖: pom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi: 查看详情
springboot实战之mybatis、druid
...Mapper,为了后续单元测试验证,实现插入和查询操作创建SpringBoot主类创建单元测试测试逻辑:插入一条name=AAA,age=20的记录,然后根据name=AAA查询,并判断age是否为20测试结束回滚数据,保证测试单元每次运行的数据环境独立【... 查看详情
springboot1.5.4整合druid(十三)
上一篇:springboot1.5.4整合mybatis(十二) 1 集成druid连接池springboot集成druid项目mybatis-spring-boot源码地址:https://git.oschina.net/wyait/springboot1.5.4.git 1.1 druid简介D 查看详情