springboot mybatis 分页整合
spring boot 整合mybatis ,分两块mybatis 整合,分页整合。
1.pom文件增加
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency> <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
2.创建表
CREATE TABLE `sale_order` (
`ID_` varchar(64) NOT NULL DEFAULT '' COMMENT '主键',
`NAME_` varchar(64) DEFAULT NULL COMMENT '订单名称',
`TOTAL_` decimal(14,2) DEFAULT NULL COMMENT '合计',
`CREATOR_` varchar(64) DEFAULT NULL COMMENT '制单人',
`CREATE_TIME_` datetime DEFAULT NULL COMMENT '创建时间',
`TENANT_ID_` varchar(64) DEFAULT NULL,
PRIMARY KEY (`ID_`)
)
3.创建SaleOrder.map.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.neo.dao.SaleOrderDao">
<resultMap id="SaleOrder" type="com.neo.model.SaleOrder">
<id property="id" column="ID_" jdbcType="VARCHAR"/>
<result property="name" column="NAME_" jdbcType="VARCHAR"/>
<result property="total" column="TOTAL_" jdbcType="NUMERIC"/>
<result property="creator" column="CREATOR_" jdbcType="VARCHAR"/>
<result property="createTime" column="CREATE_TIME_" jdbcType="TIMESTAMP"/> </resultMap> <insert id="create" parameterType="com.neo.model.SaleOrder">
INSERT INTO SALE_ORDER
(ID_,NAME_,TOTAL_,CREATOR_,CREATE_TIME_)
VALUES
(#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{total,jdbcType=NUMERIC}, #{creator,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
</insert> <select id="get" parameterType="java.lang.String" resultMap="SaleOrder">
SELECT * FROM SALE_ORDER
WHERE
ID_=#{id}
</select> <select id="query" parameterType="java.util.Map" resultMap="SaleOrder">
SELECT * FROM SALE_ORDER </select> <update id="update" parameterType="com.neo.model.SaleOrder">
UPDATE SALE_ORDER SET
NAME_=#{name,jdbcType=VARCHAR},
TOTAL_=#{total,jdbcType=NUMERIC},
CREATOR_=#{creator,jdbcType=VARCHAR}
WHERE
ID_=#{id}
</update> <delete id="remove" parameterType="java.lang.String">
DELETE FROM SALE_ORDER
WHERE
ID_=#{id}
</delete> </mapper>
注意命名空间
com.neo.dao.SaleOrderDao
配置map文件扫描。
mybatis:
typeAliasesPackage: com.neo.model
mapperLocations: classpath:mapper/*.xml
4.增加Dao类
package com.neo.dao; import com.github.pagehelper.Page;
import com.neo.model.SaleOrder; public interface SaleOrderDao { int create(SaleOrder record); void update(SaleOrder record); SaleOrder get(String id); Page<SaleOrder> query(); }
5.配置dao类扫描。
package com; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import com.neo.filter.ApplicationStartedEventListener;
import com.neo.filter.ApplicationStartedEventListener2;
import com.neo.filter.ApplicationStartingEventListener; @SpringBootApplication
@MapperScan({"com.neo.dao"})
public class DemoApplication { public static void main(String[] args) {
SpringApplication app=new SpringApplication(DemoApplication.class);
app.addListeners(new ApplicationStartedEventListener());
app.addListeners(new ApplicationStartingEventListener());
app.addListeners(new ApplicationStartedEventListener2());
app.run(args);
}
}
这里配置了MapperScan 注解。
6.配置分页
package com.neo.conf; import java.util.Properties; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.github.pagehelper.PageHelper; @Configuration
public class PageConfiguration { @Bean
public PageHelper pageHelper(){
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum","true");
properties.setProperty("rowBoundsWithCount","true");
properties.setProperty("reasonable","true");
properties.setProperty("dialect","mysql"); //配置mysql数据库的方言
pageHelper.setProperties(properties);
return pageHelper;
} }
7.编写业务类
package com.neo.service; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.neo.dao.SaleOrderDao;
import com.neo.model.SaleOrder;
@Service
public class SaleOrderService { @Autowired
SaleOrderDao orderDao; public void create(SaleOrder order){
orderDao.create(order);
} public SaleOrder get(String id){
return orderDao.get(id);
} public Page<SaleOrder> getAll(int page){
PageHelper.startPage(page, 2);
return orderDao.query();
}
}
8.配置打印SQL
在application.yml 文件中增加
logging:
level:
com.neo.dao: debug
9.编写控制器代码
@RequestMapping("/add")
public void add(){
SaleOrder order=new SaleOrder();
order.setId(System.currentTimeMillis() +"");
order.setName("zyg");
order.setCreator("AA");
order.setTotal(33D);
saleOrderService.create(order);
}
@RequestMapping("/get/{id}")
public SaleOrder get(@PathVariable(value="id") String id){
SaleOrder order= saleOrderService.get(id);
return order;
}
@RequestMapping("/page/{page}")
public Page<SaleOrder> page(@PathVariable(value="page") int page){
Page<SaleOrder> order= saleOrderService.getAll(page);
return order;
}
springboot mybatis 分页整合的更多相关文章
- SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作
SpringBoot+Mybatis+MybatisPlus整合实现基本的CRUD操作 1> 数据准备 -- 创建测试表 CREATE TABLE `tb_user` ( `id` ) NOT ...
- springboot + mybatis + mycat整合
1.mycat服务 搭建mycat服务并启动,windows安装参照. 系列文章: [Mycat 简介] [Mycat 配置文件server.xml] [Mycat 配置文件schema.xml] [ ...
- springboot + mybatis +easyUI整合案例
概述 springboot推荐使用的是JPA,但是因为JPA比较复杂,如果业务场景复杂,例如企业应用中的统计等需求,使用JPA不如mybatis理想,原始sql调优会比较简单方便,所以我们的项目中还是 ...
- Springboot+mybatis中整合过程访问Mysql数据库时报错
报错原因如下:com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone.. 产生这个 ...
- springboot+mybatis+springmvc整合实例
以往的ssm框架整合通常有两种形式,一种是xml形式,一种是注解形式,不管是xml还是注解,基本都会有一大堆xml标签配置,其中有很多重复性的.springboot带给我们的恰恰是“零配置”,&quo ...
- springboot +mybatis分页插件PageHelper
1.问题描述 JAVA界ORM的两位大佬Hibernate和Mybatis,hb自带分页(上手挺快,以前用了好几年hb,后期运维及优化快疯了),mybatis没有分页功能,需要借助第三方插件来完成,比 ...
- SpringBoot + Mybatis + Redis 整合入门项目
这篇文章我决定一改以往的风格,以幽默风趣的故事博文来介绍如何整合 SpringBoot.Mybatis.Redis. 很久很久以前,森林里有一只可爱的小青蛙,他迈着沉重的步伐走向了找工作的道路,结果发 ...
- SpringBoot Mybatis 分页插件PageHelper
添加maven配置: <!-- 分布插件 --> <dependency> <groupId>com.github.pagehelper</groupId&g ...
- 7.springboot+mybatis+redis整合
选择生成的依赖 选择保存的工程路径 查询已经生成的依赖,并修改mysql的版本 <dependencies> <dependency> <groupId>org.s ...
随机推荐
- 微信小程序开发——小程序API获取用户位置及异常流处理完整示例
前言: 小程序需要添加一个定位功能,主要的就是获取用户位置的经纬度,然后根据用户经纬度进行一些判断操作. 在小程序提供的Api中,获取用户定位信息的主要Api是 wx.getLocation(obj) ...
- 【go语言实现服务器接收http请求以及出现泄漏时的解决方案】
一.关于基础的程序的实现 刚开始的时候程序是这样实现的: // Hello package main import ( "database/sql" "fmt" ...
- 面向对象中的property装饰器讲解
面向对象中可以用property来修饰我们的函数,必须下面的例子 class Test(object): def __init__(self,name): self.name = name @prop ...
- json的内容回顾
复习一下json这个模块 import json s = '{"name":"cui","age":12}' # 这里外部必须是单引号,内部 ...
- mysql乐观锁总结和实践(一)
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持 ...
- pycurl提示load dll failed 找不到注册程序
原因:python虽然是2.7的 但有小版本区别 建议使用2.7.8
- YII2中使用控制台命令
有些时候我们需要通过crontab在后台跑一些定时脚本,这时候就需要用到控制台命令了. 我们在commands目录下创建TestController.php,当然脚本的位置是可以随意指定的,只需要在c ...
- golang 简单的实现内 网 穿 透,用户访问本地服务。
一.功能描述: 客户端通过访问外网服务器上指定端口,间接访问自已本地的内网服务. 二.原理图如下: 三.实现代码如下: server.go代码: package main; import ( &quo ...
- shell 脚本编写基础
在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...
- webapi 设置不显示接口到swaggerUI
请添加如下属性: [ApiExplorerSettings(IgnoreApi = true)]