springboot+mybatis集成分页功能
1.使用idea搭建srpingboot项目




在pom.xml文件中引入如下的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- swagger文档相关依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.1.2</version>
</dependency>
<!-- swagger文档相关依赖上下2个依赖的版本号必须一致-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis相关依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 使用阿里的druid数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- jdbc相关插件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>1.5.19.RELEASE</version>
</dependency>
<!-- mysql相关插件-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency> <!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 用来将对象转成json和将json转为对象 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.12</version>
</dependency>
spring项目配置文件:application.yml,如果是application.properties,那么建议改成yml格式,配置如下:
server:
port: 2300
spring:
application:
name: run
datasource:
druid:
url: jdbc:mysql://192.168.50.117:23306/shop?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
username: shop
password: shop
filter:
stat:
db-type: mysql
log-slow-sql: true
slow-sql-millis: 3000
enabled: true
wall:
config:
multi-statement-allow: true
enabled: true
filters: stat,wall #防御SQL注入的filter:wall
initial-size: 1 #初始化连接数量
max-active: 10 #最大并发连接数
min-idle: 1 #最小空闲连接数
max-wait: 60000 #配置获取连接等待超时的时间
time-between-eviction-runs-millis: 60000 #间隔多久才进行一次检测
min-evictable-idle-time-millis: 300000 #一个连接在池中最小生存的时间
test-on-borrow: false
test-on-return: false
test-while-idle: true
validation-query: SELECT 'lll'
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 内置监控页面的首页是localhost:2300/druid/index.html 可以登录sql监控页
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: flex
login-password: flex
reset-enable: false
//包结构如下创建:

//其中domain,mapper接口和mapper.xml可以通过mybatis生产工具生成.一般可以在百度下载一个生产工具,然后生成对应的类后就拷贝到项目来:
此处可以参考别人提供的方法:https://www.cnblogs.com/smileberry/p/4145872.html
如下是我下载的一个项目:


接着在主配置类上配上mapper的包扫描路径:
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
} }
//创建service和实现类(具体分页逻辑后面分析)
public interface IOrderMastService {
ShopOrderMast getOrderMastByOrderId(String orderId);
PageInfo<ShopOrderMast> selectOrderList(OrderQueryObject queryObject);
}
@Service
public class OrderMastServiceImpl implements IOrderMastService{
private final static Logger logger = LoggerFactory.getLogger(OrderMastServiceImpl.class);
@Autowired
private ShopOrderMastMapper orderMastMapper;
@Override
public ShopOrderMast getOrderMastByOrderId(String orderId) {
return orderMastMapper.findOrderByOrderId(orderId);
}
@Override
public PageInfo<ShopOrderMast> selectOrderList(OrderQueryObject queryObject) {
logger.info("请求参数:{}", JSON.toJSONString(queryObject));
PageHelper.startPage(queryObject.getCurrentNum(),queryObject.getPageSize());
List<ShopOrderMast> list= orderMastMapper.selectOrderList(queryObject);
logger.info("返回值:{}", JSON.toJSONString(list));
return new PageInfo<>(list);
}
}
//mapper接口
@Repository
public interface ShopOrderMastMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int deleteByPrimaryKey(Long codId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int insert(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int insertSelective(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
ShopOrderMast selectByPrimaryKey(Long codId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int updateByPrimaryKeySelective(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int updateByPrimaryKey(ShopOrderMast record);
ShopOrderMast findOrderByOrderId(String orderId);
List<ShopOrderMast> selectOrderList(OrderQueryObject queryObject);
}
//controller
@Controller
@Api(value ="订单",description ="订单相关接口" ) //API注解是用来对类进行描述
public class ShopOrderController {
private final static Logger logger = LoggerFactory.getLogger(ShopOrderController.class);
@Autowired
private IOrderMastService orderMastService;
@RequestMapping(value = "shop/order/{orderId}",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value ="订单查询",notes ="通过订单号查询对应的订单",httpMethod ="POST")//对该方法进行说明
public ShopOrderMast findOrderMastByOrderId(@PathVariable("orderId") String orderId){
return orderMastService.getOrderMastByOrderId(orderId);
}
@RequestMapping(value = "shop/order/list",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value ="订单列表",notes ="订单列表分页查询",httpMethod ="POST")//对该方法进行说明
public PageInfo<ShopOrderMast> findOrderMastByOrderId(@RequestBody OrderQueryObject queryObject){
return orderMastService.selectOrderList(queryObject);
}
}
mapper.xml(提供部分信息)
<select id="findOrderByOrderId" resultMap="BaseResultMap">
select * from shop_order_mast WHERE cod_order_id=#{orderId};
</select>
<select id="selectOrderList" resultMap="BaseResultMap">
select * from shop_order_mast WHERE flg_status_order=#{orderStatu} ORDER by dat_order_submit DESC
</select>
//分页请求参数对象
public class QueryObject {
@ApiModelProperty("当前页")
private int currentNum=1;
@ApiModelProperty("总页数")
private int pageSize=10;
public int getCurrentNum() {
return currentNum;
}
public void setCurrentNum(int currentNum) {
this.currentNum = currentNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
public class OrderQueryObject extends QueryObject {
@ApiModelProperty("订单状态")
private int orderStatu;
public int getOrderStatu() {
return orderStatu;
}
public void setOrderStatu(int orderStatu) {
this.orderStatu = orderStatu;
}
}
分页实现总结:
springboot+mybatis集成分页功能的更多相关文章
- springboot + mybatis配置分页插件
一:使用pagehelper配置分页插件 1:首先配置springboot +mybatis框架 参考:http://www.cnblogs.com/liyafei/p/7911549.html 2 ...
- MyBatis 实现分页功能
MySQL 的分页功能是基于内存的分页(即查出来所有记录,再按起始位置和页面容量取出结果). 案例:①根据用户名(支持模糊查询).用户角色 id 查询用户列表(即根据用户名称或根据用户角色 id 又或 ...
- springboot+mybatis集成多数据源MySQL/Oracle/SqlServer
日常开发中可能时常会遇到一些这样的需求,业务数据库和第三方数据库,两个或多个数据库属于不同数据库厂商,这时候就需要通过配置来实现对数据库实现多源处理.大致说一下我的业务场景,框架本身是配置的sprin ...
- SpringBoot+Mybatis集成搭建
本博客介绍一下SpringBoot集成Mybatis,数据库连接池使用alibaba的druid,使用SpringBoot微框架虽然集成Mybatis之后可以不使用xml的方式来写sql,但是用惯了x ...
- spring boot和mybatis集成分页插件
MyBatis提供了拦截器接口,我们可以实现自己的拦截器,将其作为一个plugin装入到SqlSessionFactory中. 首先要说的是,Spring在依赖注入bean的时候,会把所有实现MyBa ...
- springboot + mybatis +pageHelper分页排序
今天下午写查出来的数据的排序,原来的数据没有排序,现在把排序功能加上...原来用的,是xml中的sql动态传参 ,,1个小数没有弄出来,果断放弃... 网上百度一下,发现用pageHelper 可以 ...
- SpringBoot+Mybatis+Pagehelper分页
1.pom.xml <!-- mybatis分页插件 --> <dependency> <groupId>com.github.pagehelper</gro ...
- springboot mybatis pagehelper 分页问题
1:添加依赖 compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: '1.2 ...
- springboot+mybatis实现登录功能,返回json
1.新建maven项目(pom) <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
随机推荐
- seo工程师是什么,需要什么技能?
http://www.wocaoseo.com/thread-222-1-1.html seo工程师是什么,SEO工程师是目前需求较大的一种职业,是搜索引擎营销的一种,主要是是通过网站优化技 ...
- DevExpress的WidgetView的使用介绍
很多程序可能都会有一个首页综合展示系统的相关信息,如汇总信息,图表统计.待办业务.提醒信息等内容,在Web上可能叫做Dashboard仪表板,或者首页页面,不管哪种叫法,都是综合展示一些信息,提供一些 ...
- 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
写在前面 最近,二狗子入职了新公司,新入职的那几天确实有点飘.不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究A ...
- Cross-Site Scripting: Reflected
首先贴解决办法吧,解决了我项目中的问题,不一定适用所有情况. //For Cross-Site Scripting: Reflected public static String filter(Str ...
- EventDispatcher
事件分发类,提供事件注册.移除.触发功能 采用delegate.dictionary实现 支持自定义事件.事件采用字符串方式标识 支持 0,1,2,3,4 等5种不同参数个数的回调函数 // 路由 ...
- Beware of the encrypted VM
A friend of mine Megan told me that she got an error message as below screenshot when trying to open ...
- 自定义线程池ThreadPoolExecutor
使用自定义的方式创建线程池 Java本身提供的获取线程池的方式 使用Executors直接获取线程池,注意,前四个方式的底层都是通过new ThreadPoolExecutor()的方式创建的线程池, ...
- JDK1.7之前的Bug之静态代码块
程序的主入口是main方法,但是在jdk1.7之前,可以没有main方法也一样能运行,很是不可思议,到底是什么原因呢?,大家都知道在类中定义了静态代码块的话,是首先执行代码块里的语句的,如果把静态代码 ...
- 企业网站还是要考虑兼容至少IE10
中国国情,大部分企业还在使用win7,IE浏览器.为了兼容这些,还是少用比较VUE等一些高级的框架,改为使用jquery.用惯了VUE,jquey好多忘得差不多了,其中遇到的问题及解决方案 ajax, ...
- 第一课、python基础学习笔记
自动化非自动化的区别 自动化测试就是让机器按照人的想法把功能全部跑一遍 自动化测试的过程,让我们写一段程序去测试另一段程序是否正常的过程 Java 编译型语言, 编码-->编译-->解 ...
