博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot2.0 整合mybatis、分页插件、druid
阅读量:5789 次
发布时间:2019-06-18

本文共 3425 字,大约阅读时间需要 11 分钟。

hot3.png

前言

本文主要是针对SpringBoot2.0.2版本,实现整合mybatis、分页插件、druid等组件,实现完整的web服务,提供restful风格接口。

SpringBoot集成MyBatis有两种方式,一种简单的方式就是使用MyBatis官方提供的:

一、mybatis-spring-boot-starter (本文讲解的)
二、 另外一种方式也是我推荐的整合方式:
        就是仍然用类似mybatis-spring的配置方式,这种方式需要自己写一些代码,但是可以很方便的控制MyBatis的各项配置,与添加组件。参考:

基础框架

①:在http://start.spring.io/,配置你的项目信息并下载我的是《2.0.2.RELEASE》,我的如下图:

添加整合相关的包:

org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
runtime
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
com.alibaba
druid-spring-boot-starter
1.1.10
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5

唯一的属性配置文件

项目不使用application.properties文件 而使用更加简洁的application.yml文件(直接改后缀名): 

server:  port: 8080spring:    application:        name: user-center    datasource:        name: test        url: jdbc:mysql://127.0.0.1:3306/xin        username: root        password: root        # 使用druid数据源        type: com.alibaba.druid.pool.DruidDataSource        driver-class-name: com.mysql.jdbc.Driver        filters: stat        maxActive: 20        initialSize: 1        maxWait: 60000        minIdle: 1        timeBetweenEvictionRunsMillis: 60000        minEvictableIdleTimeMillis: 300000        validationQuery: select 'x'        testWhileIdle: true        testOnBorrow: false        testOnReturn: false        poolPreparedStatements: true        maxOpenPreparedStatements: 20mybatis:  mapper-locations: classpath:mapping/*.xml  type-aliases-package: com.winter.model#pagehelper分页插件pagehelper:  helperDialect: mysql  reasonable: true  supportMethodsArguments: true  params: count=countSql#日志级别logging:  level:    com.xin.usercenter.dao: debug

别的东西和以前一样的,这样就整合完了。

分页实现代码:

public PageInfo
getUserBySearch(AppPage
page) { // TODO Auto-generated method stub PageHelper.startPage(page.getPageNum(),page.getPageSize()); List
list=userDao.queryUserList(page.getParam()); PageInfo
pageInfo = new PageInfo
(list); return pageInfo;}

返回的PageInfo的数据结构如下:

{  "total": 5,  "list": [    {      "id": 1,      "loginName": "admin",      "password": "123123",      "nickname": "ADMIN",      "type": 1,      "state": 1,      "note": "超级管理员",      "createTime": "2018-04-28 15:15:46",      "updateTime": "2018-04-28 15:16:37",      "updateUid": 1,      "loginIp": null,      "loginAddr": null    },    {      "id": 2,      "loginName": "bian",      "password": "123456",      "nickname": "Bian",      "type": 1,      "state": 1,      "note": "普通用户",      "createTime": "2018-06-21 11:25:31",      "updateTime": "2018-06-21 11:40:52",      "updateUid": 0,      "loginIp": null,      "loginAddr": null    }  ],  "pageNum": 1,  "pageSize": 2,  "size": 2,  "startRow": 1,  "endRow": 2,  "pages": 3,  "prePage": 0,  "nextPage": 2,  "isFirstPage": true,  "isLastPage": false,  "hasPreviousPage": false,  "hasNextPage": true,  "navigatePages": 8,  "navigatepageNums": [    1,    2,    3  ],  "navigateFirstPage": 1,  "navigateLastPage": 3,  "firstPage": 1,  "lastPage": 3}

个人感觉官方返回的这个数据结构很完善了,所以就直接用PageInfo了。

源码地址:

欢迎加入技术讨论群:340697945      

转载于:https://my.oschina.net/bianxin/blog/1835680

你可能感兴趣的文章
python第三方模块—psutil模块
查看>>
Latches and Tuning:Latches
查看>>
Oracle OSW安装
查看>>
hadoop伪分布式2.4.1安装
查看>>
设置title图标
查看>>
centos7根分区扩容(适用目前主流版本)
查看>>
linux--pxe 安装系统
查看>>
ASPF(Application Specific Packet Filter)
查看>>
Jquery中缩小图像的大小
查看>>
logrotate日志自动分割
查看>>
linux命令——cp
查看>>
视频直播常见问题与解决办法汇总【系列一】
查看>>
【问题】The coprocessor thread stopped itself due to scan timeout or scan threshold
查看>>
jQuery | 获取及设置内容和属性
查看>>
wget的替换工具axel多线程下载详解
查看>>
day04.2:linux克隆及服务器之间登录
查看>>
回归测试自动化不充分-Bug总结系列笔记
查看>>
zabbix 监控mysql状态
查看>>
HAWQ技术总结
查看>>
如何在Office 365租户之间迁移邮箱
查看>>