您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > JEECG多表联查(自定义SQL)
公司有个项目是用JEECG框架开发的,遇到一个需求是多表联查的,官网都是单表查询的例子,网上找也很少,之后解决了这个问题,和大家分享一下。实现多表联查的思路,自己写已个查询语句,用一个ListmapString,object装如:ListMapString,Objectdata=systemService.findListby(sql)来。得到的值直接:dataGrid.setResults(data)注:前端就可以直接接收到数据了。(当然t:dgColtitle=列名field=和数据库查询到的值的字段保持一致)上述就可以实现多表联查并显示数据了。但是这个时候分页效果就没用了。需要实现分页操作,实现思路:把数据总数直接set进datagriddataGrid.setTotal(data.size());//总共有多少条用户在前端点击上一页下一页都会请求后台这个方法,那么datagrid就会接收到用户点的是第几页。那么就只要考虑第几页需要显示第几条值了。(两种实现方式,一种是把这个第几页做判断,直接传到数据库,用数据库的方式实现第二种方式,用list的subList(0,20)方法)截取需要显示的数据。下面代码是第二种实现方式,可以拿来直接用,ListshowList=null;//显示前端当前页的数据intshowLen=dataGrid.getRows();//动态得到前端用户需要当前页面显示多少条inttotalPage=list.size()%showLen==0?list.size()/showLen:list.size()/showLen+1;//得到当前页if(dataGrid.getPage()==1){if(showLenlist.size()){showLen=list.size();}showList=list.subList(0,showLen);}else{//总共有40条数据,以每10条进行分页,现在点击第二页显示值应该为11-20if(dataGrid.getPage()==totalPage){showList=list.subList(((dataGrid.getPage()-1)*showLen),list.size());}else{showList=list.subList(((dataGrid.getPage()-1)*showLen),((dataGrid.getPage()-1)*showLen)+showLen);}}dataGrid.setResults(showList);//显示数据dataGrid.setTotal(list.size());//总共有多少条还有上面问题可以问我,我会的都告诉大家。
本文标题:JEECG多表联查(自定义SQL)
链接地址:https://www.777doc.com/doc-4988035 .html