Springboot 2.0 + SSM + druid + 通用Mapper插件 + lombck +mybatis-generator-lombok-plugin 整合范例
前言(各位大神不用看前言,直接去正文)
springBoot
官网:https://spring.io/projects/spring-boot
idea 如何搭建Spring Boot项目 https://www.cnblogs.com/pengyan-9826/p/8093099.html (第三步的时候还可以勾选其他的东西看自己需要,当然不勾也没事)
eclipse 如何搭建Spring Boot 项目 https://blog.csdn.net/a_helloword/article/details/81052834 (没测试过,顺便安利一下IDEA,真的比eclipse好用太多了顺便贴个地址eclipse转idea 地址吧https://www.geek-share.com/detail/2707421781.html)
druid连接池
源代码仓库地址是 https://github.com/alibaba/druid
详细介绍 https://www.geek-share.com/detail/2707655648.html
通用Mapper插件
官网:https://www.oschina.net/p/mybatis-mapper
lombck
官网:https://projectlombok.org/download
详细介绍:https://www.geek-share.com/detail/2733027740.html
正文
druid连接池配置
POM
[code]<!--连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency>
application.properties(配置详细讲解:https://www.jianshu.com/p/7a0f32982dcd)
[code]spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql:///conference?useUnicode=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT spring.datasource.username=admin spring.datasource.password=admin #旧版驱动为com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver #dataSource Pool configuration 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.exceptionSorter=true spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.filters=stat,wall spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
1) 配置监控统计功能:
[code]/** * druid监控视图配置 * @ClassName: DruidStatViewServlet * @author CoffeeAndIce * @date 2017年7月24日 上午10:54:27 */ @WebServlet(urlPatterns = "/druid/*", initParams={ @WebInitParam(name="allow",value=""),// IP白名单 (没有配置或者为空,则允许所有访问) @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow) @WebInitParam(name="loginUsername",value="admin"),// 用户名 @WebInitParam(name="loginPassword",value="admin"),// 密码 @WebInitParam(name="resetEnable",value="true")// 禁用HTML页面上的“Reset All”功能 }) public class DruidStatViewServlet extends StatViewServlet { private static final long serialVersionUID = 2359758657306626394L; }
2)过滤不需要监控的后缀:
[code]/** * 配置监控拦截器 * druid监控拦截器 * @ClassName: DruidStatFilter */ @WebFilter(filterName="druidWebStatFilter", urlPatterns="/*", initParams={ @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"),// 忽略资源 }) public class DruidStatFilter extends WebStatFilter { }
启动类加入连接池,这个写法很多
[code]import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.Bean; import javax.sql.DataSource; @SpringBootApplication @ServletComponentScan public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Bean("duridDatasource") @ConfigurationProperties(prefix="spring.datasource") public DataSource druidDataSource() { return new DruidDataSource(); } }
@ServletComponentScan 注解一定要加 还有注意自己的包一定要和启动类同一级
访问http://localhost:8099/druid/login.html (账号密码都是admin)
通用Mapper插件
POM
<!--mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.2.4</version> </dependency>
application.properties
#mybatis&&通用Mapper mybatis.type-aliases-package=com.example.demo.entity.Conference mybatis.mapper-locations=classpath:mapperz/*.xml mapper.mappers=com.example.demo.dao.ConferenceMapper mapper.identity=MYSQL
在启动类上加上MapperScan注解(不要导错包)
import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.Bean; import tk.mybatis.spring.annotation.MapperScan; import javax.sql.DataSource; @SpringBootApplication @ServletComponentScan @MapperScan(basePackages = { "com.example.demo.dao" }) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Bean("duridDatasource") @ConfigurationProperties(prefix="spring.datasource") public DataSource druidDataSource() { return new DruidDataSource(); } }
lombck配置
lombck 源码地址https://github.com/GuoGuiRong/mybatis-generator-lombok-plugin
把源码弄下来(下载,或者用git都可以)
maven clean install 加到你的maven仓库
插件使用
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <!-- mvn mybatis-generator:generate --> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>src/main/resources/config/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.chrm</groupId> <artifactId>mybatis-generator-lombok-plugin</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>deploy</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
添加配置文件
generatorConfig.xml使用的时候请根据项目需要自行修改对应配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="default" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <property name="javaFileEncoding" value="UTF-8"/> <!-- 该插件给实体类添加toString()方法 --> <!-- <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> --> <!-- 这个插件给由MBG生成的Java模型对象增加了equals和hashCode方法 --> <!-- <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> --> <!-- 分页相关 --> <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" /> <!-- 带上序列化接口 --> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <!-- 自定义的注释生成插件--> <plugin type="com.chrm.mybatis.generator.plugins.CommentPlugin"> <!-- 抑制警告 --> <property name="suppressTypeWarnings" value="true" /> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false" /> <!-- 是否生成注释代时间戳--> <property name="suppressDate" value="true" /> </plugin> <!-- 整合lombok--> <plugin type="com.chrm.mybatis.generator.plugins.LombokPlugin" > <property name="hasLombok" value="true"/> </plugin> <plugin type="tk.mybatis.mapper.generator.MapperPlugin"> <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/> <!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true --> <!-- <property name="caseSensitive" value="true"/>--> </plugin> <!-- 不希望生成的注释中包含时间戳 --> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///conference?characterEncoding=utf8&useSSL=true" userId="admin" password="admin"> </jdbcConnection> <!-- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型 false:默认, scale>0;length>18:使用BigDecimal; scale=0;length[10,18]:使用Long; scale=0;length[5,9]:使用Integer; scale=0;length<5:使用Short; --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java"> <!-- 是否 自动为每一个生成的类创建一个构造方法 --> <!--<property name="constructorBased" value="false"/>--> <!--<property name="useActualColumnNames" value="true"/>--> <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package --> <property name="enableSubPackages" value="false"/> <!-- 是否创建一个不可变的类 --> <!--<property name="immutable" value="false"/>--> <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 --> <property name="trimStrings" value="false"/> <!--<property name="rootClass" value="java.io.Serializable" />--> </javaModelGenerator> <!-- 生成SQL map的XML文件生成器 --> <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"> </sqlMapGenerator> <javaClientGenerator targetPackage="com.example.demo.dao" targetProject="src/main/java" type="XMLMAPPER"> </javaClientGenerator> <table tableName="conference" domainObjectName="Conference" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> <!--mysql 配置--> <generatedKey column="id" sqlStatement="Mysql"/> <!--oracle 配置--> <!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>--> </table> <!-- mvn mybatis-generator:generate --> </context> </generatorConfiguration>
使用mvn mybatis-generator:generate 就可以生成文件了(通用插件生成的文件我只继承了Mapper<T> 还有个可以批量操作的MySqlMapper<T>,有需要可以自己去了解)
在贴一个完整的pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency><!--mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.2.4</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.6</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--thymeleaf模板引擎,无需再引入web模块--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- pageHelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> <!--swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <!-- shiro 相关--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version>1.4.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <!-- mvn mybatis-generator:generate --> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>src/main/resources/config/generatorConfig.xml</configurationFile> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.chrm</groupId> <artifactId>mybatis-generator-lombok-plugin</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>deploy</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
至此整合完成,欢迎大神指点
- Spring Boot2.0 整合mybatis、分页插件、druid
- Spring Boot 学习笔记(十一)——整合MyBatis通用Mapper插件
- 文章标题Spring Boot干货系列:(十一)数据存储篇-Spring Boot整合Mybatis通用Mapper插件
- Spring Boot MyBatis 通用Mapper插件集成
- 二十一、SpringBoot整合Mybatis、通用mapper和pageHelp
- Spring Boot MyBatis 通用Mapper插件集成
- spring boot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现后台权限管理系统源码
- [置顶] MyBatis基于Spring-boot集成通用Mapper以及pagehelper分页插件(含源码下载)
- Spring Boot : 集成mybatis、pagehelper插件、开启事务、druid数据源配置、mybatis-generator(十一)
- SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解
- SpringBoot实践之---Mybatis连接数据库(mybatis-generator-plugin)
- spring-boot | 使员Druid 整合Mybatis 最简配置多数据源
- SpringBoot整合Mybatis扫描不到Mapper的问题
- 【SSM 8】spring集成Mybatis通用Mapper
- java鬼混笔记:springboot 7、springboot整合mybatis后再加上druid数据库连接池
- [SpringBoot]IDEA快速构建SpringBoot应用项目(二)整合Mybatis + Druid
- Spring Boot2.0之整合Mybatis
- SpringBoot学习-如何使用mybatis-generator-maven-plugin自动生成代码
- SpringBoot 整合Mybatis/Druid/Quartz
- Spring Boot集成Mybatis及通用Mapper