• 关于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>






  • 相关阅读:
    九、linux-msyql下的mysql主从复制深度实战
    八、linux-mysql的mysql主从复制原理和实战
    七、linux-mysql下mysql增量备份与恢复
    六、linux-mysql的mysql字符集问题
    入坑django2
    python根据已有数据库生成model.py
    docker 常用命令记录
    gitlab自带的Nginx与原Nginx冲突的解决方案
    linux下PHP安装redis扩展
    jenkins自动部署代码到多台服务器
  • 原文地址:https://www.cnblogs.com/pureray-hui/p/12910456.html
Copyright © 2020-2023  润新知