beeltsql 分页问题

飞鹰的鸟 发布于 2016/05/23 09:58
阅读 482
收藏 0
由于sql文件关联得太多,就写在了sql文件中,我贴代码,

    public void index() {
        String sxxc = getPara("selectOneSxcx", " ");
        keepPara();
        Map<String, String> paramMap = new HashMap<String, String>();
        paramMap.put("selectOneSxcx", sxxc);
        SQLResult sqlret = SqlModel.getSQLResult("sxcx.selectOneSxcx", paramMap);
        setAttr("page", ScSlswsxlx.dao.find(sqlret.jdbcSql));
        //PageQuery query = new PageQuery();
        //SQLManager sql = sql.pageQuery("sxcx.selectOneSxcx", DmSxlx.class,query);
        //SQLManager sql=sql.pageQuery("user.queryNewUser", User.class,query);
        setAttr("info", "");
    }

这里需要分页,但是如果用普通paginate是不好带值,看文档,但是关键地方没找到那个值是怎么来的,

sql文件代码如下:

selectOneSxcx
===

select (t1.sxzs - t2.yjfs) as qszlzs,
round((t1.sxzs - (t1.sxzs - t2.yjfs))/t1.sxzs)*100||'%' as zz ,t1.*,t2.*
from (
select x.gljg_mc,x.glry_mc,x.id,count(l.sxmc)
sxzs,x.sljg_dm from SC_SLSWSX x
right join SYS_ORG org on x.sljg_dm=org.id
right join  SC_SLSWSXLX l
on x.ywls=l.ywls
group by x.gljg_mc,x.glry_mc,x.id,x.sljg_dm
) t1
left join (select sc.gljg_mc,sc.glry_mc,count(res.zlmc) yjfs
from SC_SLSWSX sc left join SC_SLSWSX_PC pc on sc.ywls=pc.ywls
left join SC_SLSWSX_RES res on pc.pcls=res.pcls
group by  sc.gljg_mc,sc.glry_mc) t2 on t1.glry_mc=t2.glry_mc

在贴一下文档的问题,我看得不懂:

3.3. 翻页查询API
• public <T> void pageQuery(String sqlId,Class<T> clazz,PageQuery query)
BeetlSQL 提供一个PageQUery对象,用于web应用的翻页查询,BeetlSql假定有sqlId 和sqlId
$count,俩个sqlId,并用这来个来翻页和查询结果总数.如:
9
BeetlSQL User Guide
queryNewUser
===
select * from user order by id desc ;
queryNewUser$count
===
select count(1) from user
大部分情况下,都不需要2个sql来完成,一个sql也可以,要求使用page函数或者pageTag标签,这
样才能同时获得查询结果集总数和当前查询的结果
queryNewUser
===
select
@pageTag(){
a.*,b.name role_name
@}
from user a left join b ...
如上sql,会在查询的时候转为俩条sql语句
select count(1) from user a left join b...
select a.*,b.name role_name from user a left join b...
如果字段较多,为了输出方便,也可以使用pageTag,字段较少,用page函数也可以.  ,具体参考
pageTag和page函数说明.翻页代码如下
//从第一页开始查询,无参数
PageQuery query = new PageQuery();
sql.pageQuery("user.queryNewUser", User.class,query);//这里的sql.不知道是从哪里冒出来的,求解决
System.out.println(query.getTotalPage());
System.out.println(query.getTotalRow());
System.out.println(query.getPageNumber());
List<User> list = query.getList();
PageQuery 对象也提供了 orderBy属性,用于数据库排序,如 "id desc"
加载中
0
闲大赋
闲大赋

user.queryNewUser  是定义在sql文件里的,默认会查找user.queryNewUser 作为数据查询,

user.queryNewUser$count, 作为总数查询,也可以只提供一个sql语句,使用page函数或者标签,也行


返回顶部
顶部