`
zhouxingfu520
  • 浏览: 418368 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ibatis查询oracle分页

阅读更多

开发采用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 &lt;= $limit$)row_ WHERE rownum_ &gt;$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分页缓存源码

    spring+ibatis+oracle分页缓存源码

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例!完整版!

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    SSI整合,有ibatis连接oracle的分页,ajax等技术

    小弟新手,第一次发自己的项目,整合了ssi,实现了ibatis连接oracle的分页,这个分页没有网上说的那么复杂,只是拼了sql分页语句就可以了

    Spring MVC+ibatis+oracle框架整合

    Spring MVC+ibatis+Oracle资源整合,实现简单的增删改查

    oracle分页(ibatis-2.3.4.726.jar).rar

    由于 ibatis 没有物理分页机制,特此修改原文件是先ORACLE物理分页。

    对IBatis分页的改进,使ibatis支持hibernate式的物理分页

    公司的大部分项目都开始使用IBatis作为O/R Mapping了,但是在使用的过程中也发现了很多不方便和存在争议的地方,其中一个不方便的地方就是分页,目前的处理方式都是在sqlMap中写针对特定数据库的物理分页Sql语句,对于...

    ssi_struts2_spring_ibatis 增删改查分页

    ssi_struts2_spring_ibatis oracle数据库.增删改查分页 示例.有简单页面.好资料.!

    SSI框架搭建增删改查以及分页

    struts2 Spring ibatis 整合实现增删改查以及分页 含有sql 到oracle数据库里执行就好了很适合新手 那个功能都实现了 而且代码很清晰

    spring mvc+ibatis+spring注解

    系统采用spring2.5 + ibatis2.3.4,采用注解方式配置,非xml配置方式。包括分页排序查询、新增、修改、删除、登陆验证功能,数据库采用oracle。

    Spring2_struts2_ibatis框架整合(ssi框架搭建)

    这个源码是在MyEclipse+tomcat6.0环境下根据spring2.5+struts2+ibatis架构,数据库用的是Oracle,连接池用的是c3p0。因看到有些上传的资料让下载者不能够运行和使用,所以我自己用Oracle中自带的emp、dept还有一个...

    dms.rar_easyui java_easyui-datagrid_jeasyui ibatis_jquery-easyui

    ibatis+easyui+etmv,实现了用户管理,权限管理数据在ACCES.条码打印 自动分页 .打印数据来源于oracle数据库使用ETMV访问,需要自建

    一个S2S+ibatis一个增删改查的例子(由SSH2例子改编)

    关于struts2.0+spring+ibatis框架的一个增删改查及分页和排序 数据库:sqlserver 2000 服务器:tomcat 如果是oracle的只需修改Spring配置文件的 驱动 及 数据库对应的表即可

    spirngmvc+ext+ibatis

    本人用ibatis 和spring mvc +ext 做的一个完整的增删改查例子,如果有需要的请将代码下载下来,代码量不大,相信都会看得懂!在此共享!包括里面 有一张数据表(oracle),就两个字段。谢谢 (唯一的缺点就是分页我...

    AppFramework_V1.0

    &lt;br&gt;第七,无法直接利用数据库的特殊语法支持海量数据的分页查询功能。众所周知Oracle提供了ROWNUM实现数据数据库内分页功能,若要利用这一特性,就要在SQL模板里直接硬编码这些特殊语法,这必然导致大量的移植...

    AppFramework_V1.0_New

    &lt;br&gt;第七,无法直接利用数据库的特殊语法支持海量数据的分页查询功能。众所周知Oracle提供了ROWNUM实现数据数据库内分页功能,若要利用这一特性,就要在SQL模板里直接硬编码这些特殊语法,这必然导致大量的移植...

    springmybatis

    mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...

    .net源码生成工具DataBase2Sharp

    深田之星Database2Sharp,是一个NHibernate、Castle-ActiveRecord、Enterprise Library和PetShop架构的C#代码和Java代码生成工具,提供了对MS Sql2000、MS Sql2005、Oracle、Mysql、Access的支持;可以生成各种架构...

    JAVA WEB典型模块与项目实战大全.part4

    第13章 网络留言板续——Oracle数据库 第14章 AJAX技术JQuery框架的经典应用 第15章 在线文件上传和下载(Struts 2.X+FileUpload) 第16章 网上投票系统(Struts2.X+JFreeChat) 第17章 商业银行网上账户管理系统...

    JAVA WEB典型模块与项目实战大全.part2(第二卷)

    第13章 网络留言板续——Oracle数据库 第14章 AJAX技术JQuery框架的经典应用 第15章 在线文件上传和下载(Struts 2.X+FileUpload) 第16章 网上投票系统(Struts2.X+JFreeChat) 第17章 商业银行网上账户管理系统...

Global site tag (gtag.js) - Google Analytics