SpringBoot+Mybatis-Generator+Mybatis+Druid+Pagehelper+Swagger2环境搭建
一、创建项目
使用的开发工具是IDEA,框架是SpringBoot2.1.0,SpringBoot2.0要求jdk版本必须在1.8以上。
新建项目时选择Spring Initializr
选择依赖
点按钮【Finish】后项目被创建。
数据库使用的是Mysql,在数据库中新建了测试使用的user表,测试数据如下
二、添加依赖
项目创建后pom.xml文件已包含的依赖项有
<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>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>
在pom.xml的<dependencies></dependencies>
中添加依赖项Druid,Pagehelper,Swagger2
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- alibaba的json格式化对象 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<!-- pagehelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!-- swagger2自动生成API文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
三、application.properties(改为application.yml)文件配置
将application.properties文件修改为application.yml。yml文件采用的是树状结构,清晰明了。
yml文件所有的键后面的冒号一定要跟一个空格,否则会报配置解析错误。
配置端口
server:
#配置端口
port: 8089
配置数据源
spring:
datasource:
#如果存在多个数据源,监控的时候通过名字来区分开来
name: mysql_springboot
#使用Druid数据源
type: com.alibaba.druid.pool.DruidDataSource
druid:
filters: stat
driver-class-name: com.mysql.cj.jdbc.Driver
#连接数据库的url
url: jdbc:mysql://localhost:3306/springboot_db?useUnicode=true&characterEncoding=utf-8&useSSL=true
#连接数据库的账号
username: root
#连接数据库的密码
password: 123456
#初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
initial-size: 1
#最小连接池数量
min-idle: 1
#最大连接池数量
max-active: 20
#获取连接池最大等待时间,单位毫秒
max-wait: 60000
time-between-eviction-runs-millis: 60000
#连接保持空闲而不被驱逐的最长时间
min-evictable-idle-time-millis: 300000
#用来检测连接是否是有效的SQL,要求是一个查询语句
validation-query: SELECT 'x'
#申请连接的时候检测,如果空闲时间大于time-between-eviction-runs-millis,执行validation检测连接是否有效
test-while-idle: true
#申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
test-on-borrow: false
#归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
test-on-return: false
#是否缓存preparedStatement,即PSCache
pool-prepared-statements: false
#要启用PSCache,必须配置大于0,当大于0时,pool-prepared-statements自动触发修改为true
max-pool-prepared-statement-per-connection-size: 20
四、集成代码逆向生成插件mybatis-generator
(1)在pom.xml中<build><plugins></plugins></build>
添加mybatis-generator插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis generator 自动生成代码插件 start-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!-- 扫描resources/generator目录下的generatorConfig.xml配置 -->
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
<!-- mybatis generator 自动生成代码插件 end-->
</plugins>
</build>
(2)在resources目录下创建generator文件夹,在新建的generator文件夹中创建generatorConfig.xml配置文件,generator.properties文件。
generatorConfig.xml通过properties标签读取generator.properties文件的配置。
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>
<!-- 运行方式:mvaen运行命令 mybatis-generator:generate -e -->
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<properties resource="generator/generator.properties"/>
<classPathEntry location="${classPathEntry}"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection
driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/${db}?characterEncoding=utf-8"
userId="${username}"
password="${password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="${pojoTargetPackage}" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="${mapperTargetPackage}" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"