使用IDEA+Spring Boot整合+Mybatis逆向工程生成代码+PageHelper实现查询结果分页
SpringBoot整合Mybatis
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 添加mybatis 自动生成插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
配置相关参数 用于生成dao层、model层、Mapper映射文件
创建generator.properties
#mysql \u9A71\u52A8jar\u5730\u5740
#jdbc.driverLocation=D:\\apache-maven-3.6.3\\repository\\com\\oracle\\ojdbc6\\11.1.0.1\\ojdbc6-11.1.0.1.jar
jdbc.driverLocation=************************
#jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.connectionURL=jdbc:*************************
jdbc.userId=*******
jdbc.password=*******
#\u5B9E\u4F53\u7C7B\u751F\u6210\u5305\u8DEF\u5F84
entity.targetPackage=com.authoritySystem.model.po
#SqlMap\u914D\u7F6E\u6587\u4EF6\u751F\u6210\u76EE\u5F55
SqlMap.targetPackage=xml.rolepriv
#mapper\u63A5\u53E3\u751F\u6210\u76EE\u5F55
#\u8868\u540D
mapper.targetPackage=com.authoritySystem.mapper
#\u8868\u540D
tableName=rolepriv
#\u5B9E\u4F53\u7C7B\u540D \u7EDF\u4E00DO\u7ED3\u5C3E
entityName=RoleprivDo
在application.yml配置数据库连接、配置Mapper映射文件
spring:
datasource:
name: sqlserver_test
druid:
url: jdbc:**************************
username: ******
password: ******
initial-size: 1 #配置初始化大小/最大/最小
min-idle: 1
max-active: 20 #获取连接等待超时时间
max-wait: 60000
time-between-eviction-runs-millis: 60000 #间隔多久进行一侧检测,检测需要的空闲连接
min-evictable-idle-time-millis: 30000 #一个连接在池中最小生存时间
validation-query: SELECT 'x' #检查数据库是否断开需要发送sql语句
test-while-idle: true #空闲的时候进行检测
test-on-borrow: false #是否检测池里连接的可用性,做了这个配置会降低性能
test-on-return: false #归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
max-pool-prepared-statement-per-connection-size: 20
在Spring Boot启动类上使用@MapperScan(basePackages = {“xxx.dao”}
PageHelper实现查询结果分页
可以使用两种方案
1.使用SpringBoot的自动配置版
2.使用pagehelpe+配置版
1.SpringBoot版引入依赖自动配置
- 引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
引入依赖之后即可直接使用
2.引入PageHelper在application.yml中添加配置
- 1引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.2.0</version>
</dependency>
2.2在application.yml中添加配置
#pagehelper分页插件配置
pagehelper:
helperDialect: *****(你的数据库:mysql、oracle、sqlserver)
reasonable: true
supportMethodsArguments: true
params: count=countSql
插入其他的知识:
在application.yml配置文件mybatis下添加配置可以在idea的控制台打印sql
mybatis:
mapperLocations: classpath*:xml/*.xml
type-aliases-package: com.authoritySystem.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
其中configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
可以在控制台输出sql
示例
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4b4de97] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@4b3c95ed] will not be managed by Spring
==> Preparing: select * from rolepriv where roleid =?
==> Parameters: 1(String)
<== Columns: functionid, priv, roleid
<== Row: 1, 1, 1
<== Row: 3, 1, 1
<== Total: 2
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4b4de97]
使用方式:
前台接收pageNumber+pageSize
ServiceImpl
GetRoleListVo vo =new GetRoleListVo();
Integer pageNumber = Integer.parseInt(params.getPageNumber());
Integer pageSize = Integer.parseInt(params.getPageSize());
if (null != pageNumber && pageSize > 0) {
PageHelper.startPage(pageNumber, pageSize);
}
List<RoleDo> infoList = roleDoMapper.selectRoleInfo();
PageInfo<RoleDo> pageInfo = new PageInfo<>(infoList);
List<RoleDo> list = pageInfo.getList();
PageVO pageVO = new PageVO(pageInfo);
vo.setList(list);
vo.setPage(pageVO);