• 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;
    
            }
    
    
  • 相关阅读:
    [IOI2014] 假期
    [SPOJ22343] Norma
    [APC001] D Forest
    [POI2004] SZN
    [JZOJ5837] Omeed
    [JZOJ5836] Sequence
    【题解】[CH弱省胡策R2]TATT
    【题解】简单题
    【题解】巧克力王国
    【题解】[SDOI2010]捉迷藏
  • 原文地址:https://www.cnblogs.com/Guroer/p/10201120.html
Copyright © 2020-2023  润新知