一 集成Mybatis逆向工程插件
1. 在pom里面导入对应的plugin
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!--必須要引入数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--必须指定版本-->
<version>8.0.22</version>
</dependency>
</dependencies>
</plugin>
2. 在resource下面生成上图用红圈标记的xml文件
3. 配置xml文件
<!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 随意写
targetRuntime 生成策略
MyBatis3Simple 只生成简单的CRUD
-->
<context id="simple" targetRuntime="MyBatis3Simple">
<commentGenerator>
<!--设置是否生成注释 true 不生成 注意: 如果不生成注释,下次生成代码就不会进行合并-->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据源 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
userId="root"
password="123456"/>
<!--pojo
javaModelGenerator java实体生成规则(POJO)
targetPackage 生成到哪个包下
targetProject 生成到当前文件的哪个相对路径下
-->
<javaModelGenerator targetPackage="com.cctv.entity" targetProject="src/main/java"/>
<!--mapper xml映射文件
sqlMapGenerator mapper xml映射文件生成规则
targetPackage 生成到哪个包下
targetProject 生成到当前文件的哪个相对路径下
-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!--mapper接口
javaClientGenerator mapper mapper接口生成规则
type 指定生成的方式
1.使用注解的方式生成
2.使用接口绑定的方式生成(要配置sqlMapGenerator)
targetPackage 生成到哪个包下
targetProject 生成到当前文件的哪个相对路径下-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.cctv.mapper" targetProject="src/main/java"/>
<!--配置哪些表需要进行代码生成
tableName 表名
domainObjectName pojo类名
mapperName 对应mapper接口的类名 和 mapper xml文件名
-->
<table tableName="student" domainObjectName="Student" mapperName="StudentMapper" />
</context>
</generatorConfiguration>
这个配置和之前的SSM中Mybatis逆向工程是一样的,可以直接复制过去
4. 在对应的插件处双击,生成对应的javaBean实体类,mapper接口,xml文件
二 Mybatis和SpringBoot整合
1. 导入mysql驱动和Mybatis场景启动器
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
<scope>runtime</scope>
</dependency>
<!-- mybatis场景启动器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
2. 在application.yml中配置和数据库相关的信息
#配置数据库连接信息
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations:
classpath: mapper/*Mapper.xml
configuration:
# 蛇形 --> 小驼峰
map-underscore-to-camel-case: true
logging:
level:
com.cctv.mapper: debug
3. 加上对应的Mapper注解
3.1 启动类加上@MapperScan注解
3.2 如果不在启动类加上@MapperScan注解就在每一个Mapper接口上加上@Mapper注解
上面两个方法选一个即可
三 SpringBoot分页插件PageHelper
1. 导入PageHelper场景启动器
<!-- 引入PageHelper场景启动器 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.5</version>
</dependency>
2. 直接使用
四 SpringBoot开启事务
SPringBoot需要开启任何一个事物不需要做任何的配置,只需要添加@Transactional注解即可
五 SpringBoot整合Druid
1. 导入Druid场景启动器
<!-- druid场景启动器-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.9</version>
</dependency>
2. 在application.yml中配置对应的druid
spring:
datasource:
druid:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
#2.连接池配置
#初始化连接池的连接数量大小,最小,最大
initial-size: 5
min-idle: 5
max-active: 20
#配置获取连接等待超时的时间
max-wait: 60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 30000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: true
test-on-return: false
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall
filter:
stat:
merge-sql: true
slow-sql-millis: 5000
#3.基础监控配置
web-stat-filter:
enabled: true
url-pattern: /*
#设置不统计哪些URL
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
session-stat-enable: true
session-stat-max-count: 100
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
#设置监控页面的登录名和密码
login-username: admin
login-password: admin
# allow: 127.0.0.1
#deny: 192.168.1.100
关于druid这些配置,我们可以直接复制拿过去使用,需要注意的一个点最后有一个login-username和login-password还有一个allow.其实这是因为druid有一个后台管理,我们可以看到,username和password自然就是账号和密码了,如果不设置就可以直接访问,设置则需要账号和密码.allow是允许哪些用户来访问.同时,如果配置了druid数据源,那么前面配置的数据源需要清除掉
druid后台管理系统: http://localhost:8081/druid/index.html 注意自己的端口号