Springboot集成Mybatis,采用druid数据源及mysql数据库为例
来源:互联网 发布:北京知果科技有限公司 编辑:程序博客网 时间:2024/06/06 22:48
<!--springboot对数据库类的支持 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
2、 修改application.properties文件或application.yml文件:
spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: root123 driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat,wall,log4j connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 mybatis: config-location: classpath:mybatis-config.xml mapperLocations: classpath:mybatis/mapper/*.xml
3、 添加DruidConfig.java配置数据源,因为Springboot内置的数据源不是Druid,所以要手动添加一个这样的配置类。
package com.demo.common.db;import java.sql.SQLException;import javax.sql.DataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;@Configurationpublic class DruidConfig {private Logger logger = LoggerFactory.getLogger(getClass());@Value("${spring.datasource.url}")private String dbUrl;@Value("${spring.datasource.username}")private String username;@Value("${spring.datasource.password}")private String password;@Value("${spring.datasource.driver-class-name}")private String driverClassName;@Value("${spring.datasource.initialSize}")private int initialSize;@Value("${spring.datasource.minIdle}")private int minIdle;@Value("${spring.datasource.maxActive}")private int maxActive;@Value("${spring.datasource.maxWait}")private int maxWait;@Value("${spring.datasource.timeBetweenEvictionRunsMillis}")private int timeBetweenEvictionRunsMillis;@Value("${spring.datasource.minEvictableIdleTimeMillis}")private int minEvictableIdleTimeMillis;@Value("${spring.datasource.validationQuery}")private String validationQuery;@Value("${spring.datasource.testWhileIdle}")private boolean testWhileIdle;@Value("${spring.datasource.testOnBorrow}")private boolean testOnBorrow;@Value("${spring.datasource.testOnReturn}")private boolean testOnReturn;@Value("${spring.datasource.poolPreparedStatements}")private boolean poolPreparedStatements;@Value("${spring.datasource.filters}")private String filters;@Beanpublic ServletRegistrationBean druidServlet() {ServletRegistrationBean reg = new ServletRegistrationBean();reg.setServlet(new StatViewServlet());reg.addUrlMappings("/druid/*");reg.addInitParameter("loginUsername", "druid");reg.addInitParameter("loginPassword", "jiajian123456");return reg;}@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();filterRegistrationBean.setFilter(new WebStatFilter());filterRegistrationBean.addUrlPatterns("/*");filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");filterRegistrationBean.addInitParameter("profileEnable", "true");filterRegistrationBean.addInitParameter("principalCookieName", "USER_COOKIE");filterRegistrationBean.addInitParameter("principalSessionName", "USER_SESSION");return filterRegistrationBean;}@Bean // 声明其为Bean实例@Primary // 在同样的DataSource中,首先使用被标注的DataSourcepublic DataSource druidDataSource() {DruidDataSource datasource = new DruidDataSource();datasource.setUrl(this.dbUrl);datasource.setUsername(username);datasource.setPassword(password);datasource.setDriverClassName(driverClassName);datasource.setInitialSize(initialSize);datasource.setMinIdle(minIdle);datasource.setMaxActive(maxActive);datasource.setMaxWait(maxWait);datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);datasource.setValidationQuery(validationQuery);datasource.setTestWhileIdle(testWhileIdle);datasource.setTestOnBorrow(testOnBorrow);datasource.setTestOnReturn(testOnReturn);datasource.setPoolPreparedStatements(poolPreparedStatements);try {datasource.setFilters(filters);} catch (SQLException e) {logger.error("druid configuration initialization filter", e);}return datasource;}}
4、自动配置模式:
添加一个Dao接口UserMapper.java:
package com.demo.dao;import java.util.List;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;import com.demo.entity.User;@Mapperpublic interface UserMapper {@Select("select *from t_user")ListgetAllUser();User getUserById(Integer id);}
其中getAllUser方法就是自动配置方式,无需其他任何配置既可查询数据,@Mapper是Mybatis的注解方法,查询数据绑定全靠它。
5、采用Mybatis推荐的XML模式,创建xml文件:
mybatis-config.xml:
- Springboot集成Mybatis,采用druid数据源及mysql数据库为例
- 一步一步学springboot (七)集成mybatis及druid数据源
- SpringBoot -- 集成Mybatis/Druid
- 从0开始学习SpringCould(5)--SpringBoot 集成Mybatis使用Druid数据源
- springboot (8) 更换数据源为Druid
- 关于springboot集成mybatis pageHelper druid 配置
- springboot -mysql -mybatis mybatis-puls,druid结合
- SpringBoot整合druid数据源及添加Druid监控页面
- SpringBoot MySql Druid配置主从数据源(多个数据源)
- SpringBoot + MyBatis + DRUID + MySQL Maven依赖配置
- Spring Boot 集成Mybatis Mysql Druid
- springboot之集成mybatis mongo shiro druid redis jsp
- springboot集成Druid
- springBoot 集成druid
- springboot mybatis druid配置
- 数据源--Springboot配置使用Druid数据源
- 一. SpringBoot集成实例系列-xml型单数据源mybatis
- 三.SpringBoot集成实例系列-注解型单数据源mybatis
- 面试题38:数字在排序数组中出现的次数
- html基础学习---1
- 温故而知新之JQuery-CallBack
- (转)全球最权威人脸识别测试PK
- 2017.07.14【NOIP提高组】模拟赛B组小结
- Springboot集成Mybatis,采用druid数据源及mysql数据库为例
- MYSQL子查询和分组查询
- 【数位DP】【357. Count Numbers with Unique Digits】
- 算法复习:斐波那契数列
- opencv学习(1)之基本数据结构
- Python-Numpy随机数
- 深入理解PriorityQueue优先队列
- 斯坦福机器学习笔记:梯度下降法
- 最小树形图模板