SpringBoot使用MyBatis+Tkmybatis+Druid步骤
全部介绍
MyBatis+Tkmybatis+Druid:
- MyBatis:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
- Tkmybatis:Tkmybatis基于Mybatis框架开发的一个工具,通过调用Tkmybatis提供的方法实现对单表的数据操作,不需要写任何sql语句,这极大地提高了项目开发效率。
- Druid:Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
构建步骤
- 依赖包的引入:MyBatis依赖包、Tkmybatis依赖包、Druid依赖包的引入、逆向工程依赖包。
- 配置文件的添加:MyBatis、Tkmybatis、Druid都有对应的配置在application.yml和application-dev.yml。
- Java类实现:Druid的Java类实现并引入监控台。
- 逆向工程:生成Tkmybatis对应的MyBatis的实体类和mapper类及mapper配置文件。
- 运行项目:日志打印出来,表示配置成功
具体构建步骤
1、依赖包的引入
MyBatis依赖包、Tkmybatis依赖包、Druid依赖包的引入:
mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-data-jpaorg.mybatis.spring.bootmybatis-spring-boot-starter1.3.1com.alibabadruid-spring-boot-starter1.1.9tk.mybatismapper-spring-boot-starter2.0.0
逆向工程插件依赖包:
org.mybatis.generatormybatis-generator-maven-plugin1.3.5${basedir}/src/main/resources/generator/generatorMainboot.xmltruetruemysqlmysql-connector-java${mysql.version}tk.mybatismapper3.4.4
2、配置文件的添加
如果配置application.yml和application-dev.yml不知道什么,可以参考:Spring Boot 支持各种环境配置。
配置文件:application.yml
mybatis: typeAliasesPackage: com.mainboot.mainbootAdmin.model mapperLocations: classpath:mapper/*.xml
配置文件:application-dev.yml
#开发配置spring: profiles: dev datasource: url: jdbc:mysql://127.0.0.1/mainboot?useSSL=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource# initialSize: 20# minIdle: 20# maxActive: 40# timeBetweenEvictionRunsMillis: 60000# minEvictableIdleTimeMillis: 300000# validationQuery: SELECT 1 FROM DUAL# testWhileIdle: true# testOnBorrow: false# testOnReturn: false# poolPreparedStatements: true#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority#则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j# filters: stat,wall,log4j# maxPoolPreparedStatementPerConnectionSize: 20# useGlobalDataSourceStat: true# connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
3、Java类实现
实现了DruidConfig类:
package com.mainboot.mainbootAdmin.config;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import javax.annotation.Resource;import javax.sql.DataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;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.core.env.Environment;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;/** * * Druid 数据源配置类 */@Configurationpublic class DruidConfig {@Resourceprivate Environment environment;@Value("${my.name}")private String myName;private static final Logger LOG = LoggerFactory.getLogger(DruidConfig.class);/** * 将自定义的 Druid 数据源添加到容器中,不再让 Spring Boot 自动创建 这样做的目的是:绑定全局配置文件中的 druid 数据源属性到 * com.alibaba.druid.pool.DruidDataSource 从而让它们生效 * * @ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中 前缀为 * spring.datasource 的属性值注入到 * com.alibaba.druid.pool.DruidDataSource 的同名参数中 * * @return */@ConfigurationProperties(prefix = "spring.datasource")@Beanpublic DataSource druidDataSource() {return new DruidDataSource();}/** * 配置 Druid 监控 之 管理后台的 Servlet 内置 Servler 容器时没有web.xml 文件,所以使用 Spring Boot 的注册 * Servlet 方式 */@Beanpublic ServletRegistrationBean statViewServlet() {ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");Map initParams = new HashMap<>();initParams.put("loginUsername