特別注意次分頁/點擊行排序方法僅用於 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>