oracle数据库使用Datagrid 数据列表的分页
来源:互联网 发布:英美杂志软件 编辑:程序博客网 时间:2024/05/29 14:03
数据列表的分页
使用oracle的分页实现。
1.1.1 dao
修改SysuserMapperCustom.xml中findSysuserList添加分页支持。
Oracle分页需要起始和结束下标,需要根据当前页码、每页显示数量、总条数(符合查询条件记录数)
使用PageQuery.java计算起始和结束的下标:
PageQuery为自己封装的工具类
使用方法:
New构造pageQuery对象,调用setPageParams方法,传入总条数、每页显示数量、当前页码,该对象中的属性PageQuery_start和PageQuery_end计算出了起始和结束的下标。
将PageQuery对象传入mybatis,将此对象作为包装对象的属性。
publicclassSysuserQueryVo {
private SysuserCustomsysuserCustom;
//分页参数
private PageQuerypageQuery;
Oracle分页sql:
分页mapper.xml
分页头和分页的尾。
<!-- 用户查询 -->
<selectid="findSysuserList"parameterType="yycg.base.pojo.vo.SysuserQueryVo"
resultType="yycg.base.pojo.vo.SysuserCustom">
<!--分页头 -->
<iftest="pageQuery!=null">
selectpage_2.*
from(select page_1.*, rownum page_num
from(
</if>
select* from (
selectSYSUSER.id,
SYSUSER.userid,
SYSUSER.username,
SYSUSER.groupid,
sysuser.USERSTATE,
SYSUSER.sysid,
decode(SYSUSER.Groupid,
'1',
(selectmc
fromuserjd where
id= sysuser.sysid),
'2',
(selectmc from userjd where
id=
sysuser.sysid),
'3',
(selectmc from useryy where id =
sysuser.sysid),
'4',
(selectmc from usergys where id = sysuser.sysid)
)
sysmc
from
SYSUSER
)sysuser
<where>
<includerefid="query_sysuser_where"/>
</where>
<!--分页尾 -->
<iftest="pageQuery!=null">
)page_1
<![CDATA[
where rownum <=${pageQuery.PageQuery_end}) page_2
where page_2.page_num >=${pageQuery.PageQuery_start}
]]>
</if>
</select>
总条数:符合条件记录数
在mapper.xml中创建一个select,返回总条数
<!-- 查询列表的总记录数 -->
<selectid="findSysuserCount"parameterType="yycg.base.pojo.vo.SysuserQueryVo"
resultType="int">
selectcount(*) from (
selectSYSUSER.id,
SYSUSER.userid,
SYSUSER.username,
SYSUSER.groupid,
sysuser.USERSTATE,
SYSUSER.sysid,
decode(SYSUSER.Groupid,
'1',
(selectmc
fromuserjd where
id= sysuser.sysid),
'2',
(selectmc from userjd where
id=
sysuser.sysid),
'3',
(selectmc from useryy where id =
sysuser.sysid),
'4',
(selectmc from usergys where id = sysuser.sysid)
)
sysmc
from
SYSUSER
)sysuser
<where>
<includerefid="query_sysuser_where"/>
</where>
</select>
1.1.2 service
publicinterfaceUserService {
//根据条件查询用户列表
publicList<SysuserCustom> findSysuserList (SysuserQueryVo sysuserQueryVo)throws Exception;
//根据条件查询记录总数
publicint findSysuserCount (SysuserQueryVosysuserQueryVo)throwsException;
1.1.3 action
调用service执行分页查询,准备PageQuery对象数据(包括起始和结束下标)。
先调用service查询出总数。
Datagrid加载数据列表时,固定向action方法传两个分页参数:
当前页码和每页显示个数
Action分页查询代码:
//用户查询页面的结果集
//最终DataGridResultInfo通过@ResponseBody将java对象转成json
@RequestMapping("/queryuser_result")
public@ResponseBodyDataGridResultInfo queryuser_result(
SysuserQueryVosysuserQueryVo,
int page,//页码
int rows//每页显示个数
)throws Exception{
//非空校验
sysuserQueryVo= sysuserQueryVo!=null?sysuserQueryVo:new SysuserQueryVo();
//查询列表的总数
int total =userService.findSysuserCount(sysuserQueryVo);
PageQuerypageQuery = newPageQuery();
pageQuery.setPageParams(total,rows, page);
sysuserQueryVo.setPageQuery(pageQuery);
//分页查询,向sysuserQueryVo中传入pageQuery
List<SysuserCustom>list =userService.findSysuserList(sysuserQueryVo);
DataGridResultInfodataGridResultInfo =new DataGridResultInfo();
//填充 total
dataGridResultInfo.setTotal(total);
//填充 rows
dataGridResultInfo.setRows(list);
return dataGridResultInfo;
}
- oracle数据库使用Datagrid 数据列表的分页
- easyUI dataGrid 列表分页使用
- asp.net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程。
- [参考]一个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程
- Oracle数据库的分页使用
- DataGrid自定义分页的使用
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- 得到分页列表的分页数据
- Oracle数据库获取其中的数据和分页
- oracle数据库组件列表及相关的数据字典视图
- datagrid easyui列表数据
- flex 使用datagrid的分页技术
- easyui的datagrid使用以及分页
- 使用JQuery EasyUI 中的DataGrid控件实现数据的分页(紧密结合上一篇博客)
- DataGrid控件的使用——分页+数据绑定(一)
- DataGrid分页使用小结
- DataGrid分页使用小结
- lightoj 1356 - Prime Independence 【质因子分解 奇偶构图 + HK优化】
- ftp配置
- 数据库增删改查基本语句
- JavaScript闭包研究
- protobuf-安装篇
- oracle数据库使用Datagrid 数据列表的分页
- Sqlite之外键约束跟内外联表
- leetcode 23:Merge k Sorted Lists
- LDAP 认证服务可用性监测
- Foundation 之 NSDictionary和NSMutableDictionary
- 关于服务器端跳转和客户端跳转
- Mysql cookbook 2
- 安卓的广播机制学习
- 创建定制的ViewGroup