qq1831108020 2013-11-19 02:28 采纳率: 0%
浏览 1054

ibtais中user.xml中的.page.end与page.start怎么赋值的?

user.xml
只有这两个page对象调用

<![CDATA[
select * from (select rownum rn,tu.party_id,tu.user_account,tu.password,tu.valid,tu.creater_id,tu.create_time,
tu.password_status,tu.terminal_use_flag,tu.desktop_use_flag,tu.valid_desk,tu.flag,tu.work_code,tu.team_code,tu.transfer_type,tu.card_transfer_type,
tp.party_name,tor.org_name,tor.org_code,tor.manager_org_code
]]>

<![CDATA[
and rownum<=# page.end #
) A WHERE rn> ** #page.start# **

]]>

Pagination分页控制类
package bj.n22.base.common;

/**

  • 作用:分页的控制
  • @author wenc
  • */
    public class Pagination {

    /**

    • 总记录数 */ private int rowCount;

    /**

    • 当前页 / private int currentPage = 1; /*
    • 下一页 / private int nextPage; /*
    • 上一页
    • / private int priPage; /*
    • 最后一页 */ private int lastPage;

    /**

    • 总页数 */ private int pageCount;

    /**

    • 每页的显示数量
    • */ private int paginalNum;

    /**

    • 构造函数 初始化每页显示的条数 */ public Pagination() { paginalNum = 10; }

    /**

    • @return Returns the pageCount. */ public int getPageCount() { return pageCount; }

    /**

    • @param pageCount
    • The pageCount to set. */ public void setPageCount(int pageCount) { this.pageCount = pageCount; }

    /**

    • @return Returns the currentPage. */ public int getCurrentPage() { return currentPage; }

    /**

    • @param currentPage */ public void setCurrentPage(int currentPage) { if (currentPage < 1) return; this.currentPage = currentPage; }

    /**

    • @return Returns the paginalNum. */ public int getPaginalNum() { return paginalNum; }

    /**

    • @param paginalNum
    • The paginalNum to set. / public void setPaginalNum(int paginalNum) { if (paginalNum < 1) return; this.paginalNum = paginalNum; } /*
      • @return Returns the priPage. */ public int getPriPage() { if (currentPage > 1) { priPage = currentPage - 1; } else { priPage = currentPage; } return priPage; }

    /**

    • @return */ public int getLastPage() { lastPage = rowCount % paginalNum == 0 ? rowCount / paginalNum : rowCount / paginalNum + 1; return lastPage; }

    /**

    • @return / public int getNextPage() { getLastPage(); if (currentPage < lastPage) { nextPage = currentPage + 1; } else { nextPage = currentPage; } return nextPage; } /*
    • @param rowCout
    • The rowCout to set. */ public void setRowCount(int rowCount) { if (rowCount < 0) return; this.rowCount = rowCount; pageCount = rowCount / paginalNum; if (rowCount % paginalNum !=0){ pageCount =pageCount + 1; } }

    /**

    • @return the rowCount */ public int getRowCount() { return rowCount; }

    /**用于 oracle查询时的起始记录数

    • @return */ public int getStart(){ return (this.getCurrentPage() -1) * this.getPaginalNum(); }

    /**用于 oracle查询时的截止记录数

    • @return */ public int getEnd(){ return this.getCurrentPage() * this.getPaginalNum(); }

    /** 设置当前页,从客户端获取的字符串时方便调用

    • @param currentPage */ public void setCurrentPage(String currentPage){ int curPage=1; if (currentPage !=null && !"".equals(currentPage.trim())){ curPage =Integer.parseInt(currentPage); } this.setCurrentPage(curPage); }

}

Action类
public String searchUsers() throws UnsupportedEncodingException {

Pagination page = new Pagination();
String currentPage = request.getParameter("currentPage");
page.setCurrentPage(currentPage);
//获得登陆用户角色
UserSession user = SessionManager.getLoginUser(request);
//获得登陆用户所在机构ID
String userOrgCode = user.getOrgCode();
if( !userOrgCode.equals(SystemConstant.SUPER_ORG_CODE)){
if(model.getOrgCode()==null && model.getOrgName()==null ){
model.setOrgCode(userOrgCode);
model.setOrgName(user.getOrgName());
}
}
//获得用户所属渠道
model.setChannelCode(user.getChannelCode());
//如果从启动移动展业跳转而来的,要对中文参数进行转码
String stemFrom = request.getParameter("stemFrom");
if(StringUtils.isNotEmpty(stemFrom)){
model.setPartyName(new String(model.getPartyName().getBytes("ISO-8859-1"), "UTF-8"));
model.setOrgName(new String(model.getOrgName().getBytes("ISO-8859-1"), "UTF-8"));
}
QueryResult result = usersService.searchUsers(model, page);
page.setRowCount(result.getCount());
if(userOrgCode.equals(SystemConstant.SUPER_ORG_CODE)){
request.setAttribute("userOrgCode", null);
request.setAttribute("userOrgName", null);
}else{
request.setAttribute("userOrgCode", userOrgCode);
request.setAttribute("userOrgName", user.getOrgName());
}

    model.setUserAccount(account);
    request.setAttribute("listStr", listStr);
    request.setAttribute("list", result.getList());

    request.setAttribute("page", page);
    return this.SUCCESS;
}

UsersServiceImpl类

public QueryResult searchUsers(Users users, Pagination page) {
users.setPartyName(users.getPartyName()==null?"":users.getPartyName().trim());
users.setUserAccount(users.getUserAccount()==null?"":users.getUserAccount().trim());
return usersDao.searchUsers(users, page);
}
UsersDaoImpl类
public QueryResult searchUsers(Users users,Pagination page) {
return baseDao.search("nci-system-users.searchUsers",users,page) ;
}

BaseDaoImpl基类
public QueryResult search(String statementName,Object model,Pagination page) {
Map map=new HashMap();
map.put("page",page);
map.put("model", model);
List list=queryForList(statementName, map);
int count=queryForInt(statementName + "_count", map);
QueryResult result=new QueryResult();
result.setCount(count);
result.setList(list);
return result ;
}

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-09 19:19
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
    (讯飞星火专栏,V3.0版本,2023.10.24)


    该回答引用讯飞星火认知大模型,仅提供参考,不保证完全正确
    在user.xml文件中,.page.end.page.start的值是通过<![CDATA[...]]>标签内的SQL语句中的#page.end##page.start#来设置的。这两个值分别表示查询结果的结束行号和起始行号。


    例如,如果需要查询第2页的数据,每页显示10条记录,那么可以这样设置:

    <![CDATA[
    select * from (select rownum rn,tu.party_id,tu.user_account,tu.password,tu.valid,tu.creater_id,tu.create_time,
    tu.password_status,tu.terminal_use_flag,tu.desktop_use_flag,tu.valid_desk,tu.flag,tu.work_code,tu.team_code,tu.transfer_type,tu.card_transfer_type,
    tp.party_name,tor.org_name,tor.org_code,tor.manager_org_code
    ]]>
    
    <![CDATA[
    and rownum<=# page.end #
    ) A WHERE rn> ** #page.start# **
    ]]>
    

    在这个例子中,#page.end#的值为21(因为第2页的数据从第21条开始),#page.start#的值为11(因为第2页的数据从第11条开始)。所以,这个查询语句会返回第2页的数据,每页显示10条记录。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题