Spring Boot mybatis HashMap +layui 通用分页
背景:
mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦。本文就以mybatis +layui创建通用分页类,简化这一操作,提升开发效率(没考虑注入情况读者自行修改)
有需要的同学可以下载 示例代码
先看效果
1.添加静态文件资源
把UI静态文件拷入resources/static文件夹中
2.添加分页dao
@Mapper
@Repository
public interface PageDao { @Select("select count(1) from ${table}")
int findCountAll(@Param("table") String table); @Select("select * from ${table} limit #{pagestart}, #{pagesize}")
List<HashMap<String, Object>> findMapPageAll(@Param("table") String table, @Param("pagestart") int pagestart, @Param("pagesize") int pagesize); @Select("select count(1) from ${table} where ${strWhere}")
int findCount(@Param("table") String table, @Param("strWhere") String strWhere); @Select("select ${fileds} from ${table} where ${strWhere} ${order} limit #{pagestart}, #{pagesize}")
List<HashMap<String, Object>> findMapPage(@Param("table") String table,
@Param("fileds") String fileds,
@Param("order") String order,
@Param("strWhere") String strWhere,
@Param("pagestart") int pagestart,
@Param("pagesize") int pagesize); @Select("select ${fileds} from ${table} where ${strWhere} ${order}")
List<HashMap<String, Object>> findMapAll(@Param("table") String table,
@Param("fileds") String fileds,
@Param("order") String order,
@Param("strWhere") String strWhere
); }
3.添加PageService
@Service
public class PageService { @Autowired
PageDao pageDao; public int findCount(String table){
return pageDao.findCountAll(table);
}
public List<HashMap<String, Object>> findMapPage(String table, int pagestart, int pagesize){
return pageDao.findMapPageAll(table,pagestart, pagesize);
}
public int findCount(String table, String strWhere){
return pageDao.findCount(table,strWhere);
}
public List<HashMap<String, Object>> findMapPage(String table,String fileds,String order,String strWhere,int pagestart,int pagesize){
return pageDao.findMapPage(table,fileds,order,strWhere,pagestart,pagesize);
} public List<HashMap<String, Object>> findMapAll(String table,String fileds,String order,String strWhere){
return pageDao.findMapAll(table,fileds,order,strWhere);
} }
4.建立Controller
@Autowired
PageService pageService; @RequestMapping(value = "/pagelist", method = {RequestMethod.GET, RequestMethod.POST})
public String pagelist() { return "pagelist";
} @RequestMapping("/pagelsitquery")
@ResponseBody
public String pagelsitquery(HttpServletResponse response, ModelMap modelMap, PageSearch pageConf) throws IOException { int currentPage = pageConf.getCurrentPage();
int pageSize = pageConf.getPageSize();
int pagestart=(currentPage-1)*pageSize;
String tables = "groupidinfo t ";
String files = "t.*";
String order = "order by t.id desc ";
String where = "1=1"; if(!StringUtils.isBlank(pageConf.getKey())){
String key=pageConf.getKey();
where=where+" and groupId like '%"+key+"%' ";
} int total=pageService.findCount(tables,where);
List<HashMap<String, Object>> map= pageService.findMapPage(tables,files,order,where,pagestart,pageSize);
Map<String, Object> obj=new HashMap<String,Object>();
obj.put("total",total);
obj.put("list",map);
ObjectMapper objectMapper = new ObjectMapper();
String jsonString=objectMapper.writeValueAsString(obj); return jsonString; }
5.创建HTML,关键JS
/**
* 初始化layui分页
*/ function initLayPage(pageConf) {
if(!pageConf){
pageConf ={};
pageConf.pageSize = 20;
pageConf.currentPage = 1; }
key=$('#key').val(); pageConf.key=key; console.log(pageConf); $.post("pagelsitquery", pageConf, function (data) { layui.use(['laypage', 'layer'], function () {
var page = layui.laypage;
page.render({
elem: 'layui',
count: data.total,
curr: pageConf.currentPage,
limit: pageConf.pageSize,
first:"首页",
last:"尾页",
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
jump: function (obj, first) {
if (!first) {
pageConf.currentPage = obj.curr;
pageConf.pageSize = obj.limit;
initLayPage(pageConf);
}
}
});
fillTable(data.list,(pageConf.currentPage - 1) * pageConf.pageSize); //页面填充
})
},"json");
}
//填充表格数据
function fillTable(data,num) { var info = '';
$.each(data, function (index, obj) { info += '<tr>'+
'<td>' + getValue(obj.id) + '</td>'+
'<td>' + getValue(obj.groupId) + '</td>'+
'<td>' + getValue(obj.version) + '</td>'+
'<td>' + getValue(obj.cluster) + '</td>'+
'<td>' + getValue(obj.timeout) + '</td>'+
'<td>' + getValue(obj.retries) + '</td>'+ '</tr>';
});
//alert(info);
$("#tab_list").html(info); }
function getValue(v) {
if(v==undefined)return "";
return v; }
Spring Boot mybatis HashMap +layui 通用分页的更多相关文章
- spring boot + mybatis + layui + shiro后台权限管理系统
后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...
- Spring Boot + Mybatis 实现动态数据源
动态数据源 在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库.又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动 ...
- Spring boot Mybatis 整合(完整版)
个人开源项目 springboot+mybatis+thymeleaf+docker构建的个人站点开源项目(集成了个人主页.个人作品.个人博客) 朋友自制的springboot接口文档组件swagge ...
- 【转】spring boot mybatis 读取配置文件
spring boot mybatis 配置整理 一.加载mybatis的配置 1.手写配置,写死在代码里 import java.io.IOException; import java.util.P ...
- Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结
Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid* ...
- 详解spring boot mybatis全注解化
本文重点介绍spring boot mybatis 注解化的实例代码 1.pom.xml //引入mybatis <dependency> <groupId>org.mybat ...
- (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...
- Spring Boot MyBatis 数据库集群访问实现
Spring Boot MyBatis 数据库集群访问实现 本示例主要介绍了Spring Boot程序方式实现数据库集群访问,读库轮询方式实现负载均衡.阅读本示例前,建议你有AOP编程基础.mybat ...
- spring boot+mybatis搭建项目
一.创建spring boot项目 1.File->New->Project 2.选择 Spring Initializr ,然后选择默认的 url 点击[Next]: 3.修改项目信息 ...
随机推荐
- js对象取值的两种方式
:"李四"}; var v1 = obj.name1; //张三, 使用点的方式 //报错,不能使用点的方式 ]; //李四,使用中括号的方式 var key = "na ...
- C# 中ref与out关键字区别
ref 关键字通过引用传递的参数的内存地址,而不是值.简单点说就是在方法中对参数的任何改变都会改变调用方的基础参数中.代码举例: class RefExample { static void Meth ...
- [NOIp2016] 换教室
题目类型:期望\(DP\) 传送门:>Here< 题意:现有\(N\)个时间段,每个时间段上一节课.如果不申请换教室,那么时间段\(i\)必须去教室\(c[i]\)上课,如果申请换课成功, ...
- ovs-qos配置
QoS配置 在许多网络场景中,都需要根据需求对网络流量部署服务质量(QoS)保障策略,比如限制指定主机的最大接入带宽等需求.本节将介绍如何在OVS上添加队列,并完成数据的入队操作,从而完成QoS策略部 ...
- CentOS配置history记录每个用户执行过的命令
一个偶然的机会,看到了这个文档,先存下来,后续使用的话直接就加进去了 要记录登录者的用户名.IP.操作记录,在/etc/bashrc末尾加入几个环境变量,用于history命令显示用户ip等内容,完成 ...
- 监控MySQL|Redis|MongoDB的执行语句(go-sniffer)
上节回顾:https://www.cnblogs.com/dotnetcrazy/p/9986873.html 以CentOS为例: 1.环境 PS:如果不需要Golang环境,可以编译后把执行文件c ...
- pyspider框架学习
一.crawl()方法学习: 1.url:爬去是的url,可以定义单个,可以定义为url列表. 2.callback:回调函数,指定该url使用哪个方法来解析. 3.age:任务的有效时间. 4.pr ...
- java 简单程序
public class a{ public static void main(String[] args) { System.out.println("Hello world") ...
- JavaScript对象 Object类型基础
前言 JavaScript 对象是整个语言学习的一个难点.本文主要带大家入门学习Object知识 对象定义 javascript的基本数据类型包括undefined.null.boolean.stri ...
- Android应用程序国际化
前情提要 在Android应用程序中, 可以轻松更改语言, 以适应国际化标准 一些用户拥有多种语言习惯, 因此, 应用程序不能依赖设备默认语言环境, 必须提供更改显示语言的程序功能 本文章探寻持久化语 ...