开发采用spring+struts+ibatis+extjs,数据库用oracle
ibtais配置分页 模糊查询
<sqlMap namespace="RYDM" >
<!--加载 分页对象-->
<typeAlias alias="page" type="com.portal.util.Page" />
<!--加载 实体对象-->
<typeAlias alias="abatorgenerated_RydmResult" type="com.portal.model.Rydm" />
<resultMap id="abatorgenerated_RydmResult" class="com.portal.model.Rydm" >
<result column="RYDM" property="rydm" jdbcType="VARCHAR" />
<result column="RYMC" property="rymc" jdbcType="VARCHAR" />
<result column="BMZDM" property="bmzdm" jdbcType="VARCHAR" />
<sql id="findByPageCondition">
<isNotEmpty property="objCondition">
<isNotEmpty property="objCondition.bmzdm">
bmzdm LIKE '%$objCondition.bmzdm$%'
</isNotEmpty>
<isNotEmpty property="objCondition.rymc">
AND rymc LIKE '%$objCondition.rymc$%'
</isNotEmpty>
</isNotEmpty>
</sql>
<select id="findByPage" parameterClass="page"
resultClass="abatorgenerated_RydmResult">
SELECT * FROM (SELECT row_.*, rownum rownum_ FROM
(select ry.* from RYDM ry
where 1=1
<dynamic prepend="AND">
<include refid="findByPageCondition" />
</dynamic>
)row_ WHERE rownum <= $limit$)row_ WHERE rownum_ >$start$
ORDER BY rydm
</select>
<select id="findByCount" parameterClass="page" resultClass="int">
SELECT COUNT(*) FROM RYDM ry where 1=1
<dynamic prepend="AND">
<include refid="findByPageCondition" />
</dynamic>
</select>
分页模型通用类
public class Page implements java.io.Serializable{
public void setPageProperty(Page page) {
if(page.getStart()>0){
// 设置取数据的区间
int endPage=page.getStart()+page.getLimit();
int stratPage=page.getStart();
this.setStart(stratPage);
this.setLimit(endPage);
}else{
this.setLimit(page.getLimit());
this.setStart(0);
}
}
/** 总记录数 */
private int totalProperty;
/** 分页结果 */
private List root;
/** 开始页码 */
private int start;
/** 每页多少 */
private int limit;
/** 成功与否 */
private boolean success;
/** 查询条件 */
private Object objCondition;
实体类
public class Rydm implements Serializable{
/**
* This field was generated by Abator for iBATIS.
* This field corresponds to the database column RYDM.RYDM
*
* @abatorgenerated Sat Aug 06 16:55:26 CST 2011
*/
private String rydm;
private String rymc;
private String bmzdm;
服务层调用
public class RydmServiceImpl extends SqlMapClientDaoSupport implements
RydmService {
public Page findByPageRydm(Page page) throws BusinessException {
page.setTotalProperty((Integer) getSqlMapClientTemplate()
.queryForObject("RYDM.findByCount", page));
page.setPageProperty(page);
page.setRoot(getSqlMapClientTemplate().queryForList(
"RYDM.findByPage", page));
return page;
}
action设置分页属性
public class UsersAction extends ActionSupport implements ServletRequestAware,
SessionAware{
public String message;
public String conditions;
protected Map session;//会话对象
protected HttpServletRequest request;//请求对象
/*
* 查询用户信息
*/
public String listUser() {
Rydm user=new Rydm();
user.setBmzdm(request.getParameter("bmzdm").toString());
user.setRymc(request.getParameter("rymc").toString());
int start =0;
int Limit=10;
Page page = new Page();
try {
start = Integer.valueOf(getRequest().getParameter("start"));
Limit = Integer.valueOf(getRequest().getParameter("limit"));
}catch (NumberFormatException e) {
}
page.setStart(start);
page.setLimit(Limit);
//使用对象作为查询参数 传入ibtais
page.setObjCondition(user);
page = userService.findByPage(page);
} catch (BusinessException e) {
log.warn("UsersAction.class查询用户信息出现异常"+e.getMessage(), e);
}
return SUCCESS;
}
}
返回配置 我是使用了ext 所以转换json 显示到客户端
<package name="admin" extends="json-default" namespace="/admin">
<action name="listUser" class="userAction" method="listUser">
<result type="json">
<param name="root">page</param>
<param name="excludeProperties">limit,start,objCondition</param>
</result>
</action>
</package>
extjs 参数查询
var rydm_store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : "/extDemo/admin/userList.action",
method:"post"
}),
reader : new Ext.data.JsonReader({
totalProperty : 'totalProperty',
root : 'root',
fields : [ {
name : 'bmzdm',
type : 'string'
} , {
name : 'bmmc',
type : 'string'
}]
})
});
var btn_search_rydm = new Ext.Button({
text : '查询',
iconCls : 'icon-search',
handler : queryRydm
});
var queryRydm = function() {
rydm_store.baseParams.bmzdm= bmzdm_search_rydn.getValue();
rydm_store.baseParams.rymc =text_search_rydm.getValue();
rydm_store.load({params : {start : 0,limit : 15}});
}
分享到:
相关推荐
spring+ibatis+oracle分页缓存源码
struts2+spring+ibatis+oracle+分页搜索+上传附件实例!完整版!
ibatis调用oracle存储过程分页
小弟新手,第一次发自己的项目,整合了ssi,实现了ibatis连接oracle的分页,这个分页没有网上说的那么复杂,只是拼了sql分页语句就可以了
Spring MVC+ibatis+Oracle资源整合,实现简单的增删改查
由于 ibatis 没有物理分页机制,特此修改原文件是先ORACLE物理分页。
公司的大部分项目都开始使用IBatis作为O/R Mapping了,但是在使用的过程中也发现了很多不方便和存在争议的地方,其中一个不方便的地方就是分页,目前的处理方式都是在sqlMap中写针对特定数据库的物理分页Sql语句,对于...
ssi_struts2_spring_ibatis oracle数据库.增删改查分页 示例.有简单页面.好资料.!
struts2 Spring ibatis 整合实现增删改查以及分页 含有sql 到oracle数据库里执行就好了很适合新手 那个功能都实现了 而且代码很清晰
系统采用spring2.5 + ibatis2.3.4,采用注解方式配置,非xml配置方式。包括分页排序查询、新增、修改、删除、登陆验证功能,数据库采用oracle。
这个源码是在MyEclipse+tomcat6.0环境下根据spring2.5+struts2+ibatis架构,数据库用的是Oracle,连接池用的是c3p0。因看到有些上传的资料让下载者不能够运行和使用,所以我自己用Oracle中自带的emp、dept还有一个...
ibatis+easyui+etmv,实现了用户管理,权限管理数据在ACCES.条码打印 自动分页 .打印数据来源于oracle数据库使用ETMV访问,需要自建
关于struts2.0+spring+ibatis框架的一个增删改查及分页和排序 数据库:sqlserver 2000 服务器:tomcat 如果是oracle的只需修改Spring配置文件的 驱动 及 数据库对应的表即可
本人用ibatis 和spring mvc +ext 做的一个完整的增删改查例子,如果有需要的请将代码下载下来,代码量不大,相信都会看得懂!在此共享!包括里面 有一张数据表(oracle),就两个字段。谢谢 (唯一的缺点就是分页我...
<br>第七,无法直接利用数据库的特殊语法支持海量数据的分页查询功能。众所周知Oracle提供了ROWNUM实现数据数据库内分页功能,若要利用这一特性,就要在SQL模板里直接硬编码这些特殊语法,这必然导致大量的移植...
<br>第七,无法直接利用数据库的特殊语法支持海量数据的分页查询功能。众所周知Oracle提供了ROWNUM实现数据数据库内分页功能,若要利用这一特性,就要在SQL模板里直接硬编码这些特殊语法,这必然导致大量的移植...
mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...
深田之星Database2Sharp,是一个NHibernate、Castle-ActiveRecord、Enterprise Library和PetShop架构的C#代码和Java代码生成工具,提供了对MS Sql2000、MS Sql2005、Oracle、Mysql、Access的支持;可以生成各种架构...
第13章 网络留言板续——Oracle数据库 第14章 AJAX技术JQuery框架的经典应用 第15章 在线文件上传和下载(Struts 2.X+FileUpload) 第16章 网上投票系统(Struts2.X+JFreeChat) 第17章 商业银行网上账户管理系统...
第13章 网络留言板续——Oracle数据库 第14章 AJAX技术JQuery框架的经典应用 第15章 在线文件上传和下载(Struts 2.X+FileUpload) 第16章 网上投票系统(Struts2.X+JFreeChat) 第17章 商业银行网上账户管理系统...