beeltsql 分页问题

发布于 2021-12-01 05:38:05 字数 3087 浏览 901 评论 1

由于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"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无声静候 2021-12-01 07:40:09

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文