关于jeesite分页和点击列自动排序

特别注意次分页/点击行排序方法仅用于 jeesite项目框架内

一般思路:{假设实体类:DemoEntity        业务层:DemoService       引用的业务层:QuoteService       数据层:DemoDao           方法传的参数:(demoEntity,request,response) }

现将要的数据通过List或Map进行封装,再将封装的数据进行分页

Controller:

 1,Controller:

复制代码
 2 
 3 @Controller
 4 public class DemoController{
 5 @Autowired
 6 private DemoService demoService;
 7 @Autowired
 8 priavte QuoteService quoteService;
 9 
10 @reponseBody
11 @requestMapping(value="/listDate",method=RequestMethod.POST)
12 public Page<Demo> selectAllListDate(String param,HttpServletRequest request,HttpServletResponse response){
13 //将request,response里的参数(pageNo  pageSize   pageCount)
14 Page<Demo> page=new Demo(request,response);
15    //新建Demo容器  
16      Demo demo=new Demo();
17   //将页面信息封装到实体类中
18    demo.setPage(page);
19 //将参数封装到实体类中,尤其是传递多个参数时(便于免于校验参数是否为空)
20      demo.setParam(param);
21 Page<Demo> resultPages = demoService.getListDate(demo);
22 result resultPages;
23 
24   }
26 }
复制代码

2,Service:
复制代码
@Service
public class DemoService extends CrudService<CountCloseLockDao,CountCloseLockEntity>{
@Autowired
private DemoDao demoDao;

public getListDate(Demo demo){
//获取页面  
@SuppressWarnings("unchecked")
Page<Demo> page = (Page<Demo>)demo.getPage();
        
//获取到设备表的总条数
int pageCount
=demoDao.countDemoTimes(demo);
//根据管辖区域字符串来过滤查询出的数据,再封装在数据里(特别注意:jeesite会自动在dao层识别page,自动进行分页) 
//对分页也可以用sql里自定义Limit来分页(sql代码见dao.xml)
//list集合封装了查询数据 List<Demo> resultList = demoDao.findListByParams(demo,page); page.setCount(pageCount); page.setList(resultList); result page; } }
复制代码

 3, Dao:

@MyBatis
public interface DemoDao extends CrudDao<Demo> {
//分数数据  注意当参数包含page时,可以省去dao.xml的分页,jeesite会自动进行分页
Page<Demo> findListParams(@Param("demo")Demo demo,@Param("page")Page<Demo> page);
//统计总次数 int
countDemoTimes(Demo demo);
}

 

4,dao.xml

 

复制代码
<!-- 分页查询数据 -->
    <select id="findListByParams" resultType="Demo">
    SELECT a.*  FROM table_a a 
    <where>
            <if test="demo.param!= null and demo.param.trim() != ''">
        <!--模糊查询-->              
and  a.param like '%${demo.param}%'
            </if>
            <if test="demo.code != null and demo.code.trim() != ''">
                and a.code like '%${demo.code}%'
            </if>
    </where>
    <if test="demo.page != null and demo.page.orderBy != null and demo.page.orderBy != ''">
        ORDER BY ${demo.page.orderBy}        
    </if>


<!--手动添加分页
    <if test="demo.page != null and demo.page.pageNo != null and demo.page.pageNo != '' and demo.page.pageSize != null and demo.page.pageSize != ''">
limit ${(demo.page.pageNo-1)*demo.page.pageSize},${demo.page.pageSize}        
    </if>
-->

</select>


<!-- 获取总条数 -->
<select id="countDemokTimes" resultType="java.lang.Integer">
select count(1) from table_a a  

<where>

<!--显示总条数   注意包含模糊查询时显示的总条数的情况-->

<if test="demo.param !=null and demo.param.trim() != ''">

a.param like '%${demo.param}$'

</if>

</where> 

</select>




复制代码

 

 

 



 

posted @   唯恐不及  阅读(1012)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示