`
Kevin12
  • 浏览: 235993 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle配置ibatis动态多条件组合模糊、分页查询

阅读更多
链接地址:http://kevin12.iteye.com/blog/1953780
注意的地方:&lt;就是<号,即小于号,&gt;是>号,即大于号;
最近将流程项目的数据库从mysql改成oracle的数据库,原先配置的mysql的ibatis文件就不能用了,比如分页功能,模糊查询都不能用了。下面记录我修改的oracle配置ibatis的分页以及动态多条件组合,模糊查询。这里只列出来一个分页查询的ibatis文件,代码虽然有点乱,细心耐心总会有收获的:
 
  <select id="IUserInf_getListForPage" parameterClass="java.util.HashMap" resultMap="codeNodeMapping">
     select * from( select row_.*,rownum rownum_ from (select IUI_ID,IUI_USER_NAME,IUI_LOGIN_NAME,IUI_PASSWORD,IUI_MOBILE_PHONE,IUI_TEL,IUI_EMAIL,IUI_ID_NO,IUI_ORG_ID,IUI_IS_ADMIN,IUI_CREATE_DATETIME,IUI_LAST_UPDATE_DATETIME,IUI_LAST_UPDATE_OPERATOR_ID,IUI_VERSION,IUI_VERSION_DATE,IUI_DATA_STATUS,IUI_IS_ACTIVITY from TB_I_USER_INF a 
  <dynamic prepend="WHERE ">    
    <isNotEmpty prepend="AND" property="IUI_ID"> a.IUI_ID like '%$IUI_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_USER_NAME"> a.IUI_USER_NAME like '%$IUI_USER_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LOGIN_NAME"> a.IUI_LOGIN_NAME like '%$IUI_LOGIN_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_PASSWORD"> a.IUI_PASSWORD like '%$IUI_PASSWORD$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_MOBILE_PHONE"> a.IUI_MOBILE_PHONE like '%$IUI_MOBILE_PHONE$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_TEL"> a.IUI_TEL like '%$IUI_TEL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_EMAIL"> a.IUI_EMAIL like '%$IUI_EMAIL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ID_NO"> a.IUI_ID_NO like '%$IUI_ID_NO$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ORG_ID"> a.IUI_ORG_ID like '%$IUI_ORG_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ADMIN"> a.IUI_IS_ADMIN = #IUI_IS_ADMIN#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_CREATE_DATETIME"> a.IUI_CREATE_DATETIME = #IUI_CREATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_DATETIME"> a.IUI_LAST_UPDATE_DATETIME = #IUI_LAST_UPDATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_OPERATOR_ID"> a.IUI_LAST_UPDATE_OPERATOR_ID like '%$IUI_LAST_UPDATE_OPERATOR_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION"> a.IUI_VERSION = #IUI_VERSION#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION_DATE"> a.IUI_VERSION_DATE = #IUI_VERSION_DATE#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_DATA_STATUS"> a.IUI_DATA_STATUS = #IUI_DATA_STATUS#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ACTIVITY"> a.IUI_IS_ACTIVITY = #IUI_IS_ACTIVITY#</isNotEmpty>
  </dynamic>
	)row_ WHERE rownum &lt;= $endRow$)row_ WHERE rownum_ &gt;$startRow$
  <dynamic prepend="ORDER BY">
        <isNotEmpty property="orderSql">   
            $orderSql$   
        </isNotEmpty>
    </dynamic>   
   </select>
    <select id="IUserInf_getCount" parameterClass="java.util.HashMap" resultClass="java.lang.Long">
        select count(1) as value from TB_I_USER_INF a 
  <dynamic prepend="WHERE ">    
    <isNotEmpty prepend="AND" property="IUI_ID"> a.IUI_ID like '%$IUI_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_USER_NAME"> a.IUI_USER_NAME like '%$IUI_USER_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LOGIN_NAME"> a.IUI_LOGIN_NAME like '%$IUI_LOGIN_NAME$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_PASSWORD"> a.IUI_PASSWORD like '%$IUI_PASSWORD$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_MOBILE_PHONE"> a.IUI_MOBILE_PHONE like '%$IUI_MOBILE_PHONE$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_TEL"> a.IUI_TEL like '%$IUI_TEL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_EMAIL"> a.IUI_EMAIL like '%$IUI_EMAIL$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ID_NO"> a.IUI_ID_NO like '%$IUI_ID_NO$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_ORG_ID"> a.IUI_ORG_ID like '%$IUI_ORG_ID$%'</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ADMIN"> a.IUI_IS_ADMIN = #IUI_IS_ADMIN#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_CREATE_DATETIME"> a.IUI_CREATE_DATETIME = #IUI_CREATE_DATETIME#)</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_DATETIME"> a.IUI_LAST_UPDATE_DATETIME = #IUI_LAST_UPDATE_DATETIME#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_LAST_UPDATE_OPERATOR_ID"> a.IUI_LAST_UPDATE_OPERATOR_ID = #IUI_LAST_UPDATE_OPERATOR_ID#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION"> a.IUI_VERSION = #IUI_VERSION#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_VERSION_DATE"> a.IUI_VERSION_DATE = #IUI_VERSION_DATE#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_DATA_STATUS"> a.IUI_DATA_STATUS = #IUI_DATA_STATUS#</isNotEmpty>
    <isNotEmpty prepend="AND" property="IUI_IS_ACTIVITY"> a.IUI_IS_ACTIVITY = #IUI_IS_ACTIVITY#</isNotEmpty>
  </dynamic>

    </select>

下面是service中对ibatis文件的调用:
	public <T> Pager<T> getListByPage(T obj, Integer pageSize,
			Integer currentPage) {
		String paths = obj.getClass().toString();
		String model = paths.substring(paths.lastIndexOf(".") + 1, paths.length());
		List<T> list = null;
		Pager page = new Pager();
		page.setPageSize(pageSize);
		page.setCpage(currentPage);
		Map map = MapPojoUtils.pojo2Map(obj);
		Long totalSize = (Long) getSqlMapClientTemplate().queryForObject(model + "_getCount", map);
		page.setTotalItem(totalSize);
//		map.put("startRow", page.getPageStart()+1);
//		map.put("endRow", page.getPageSize()+page.getPageStart());
		map.put("startRow", page.getPageStart());
		map.put("endRow", page.getPageSize());
		list = getSqlMapClientTemplate().queryForList(
				model + "_getListForPage", map);
		page.setList(list);
		return page;
	}


	public Pager<IUserInf> sysconfig_findUser(IUserInf user, Integer pageSize,
			Integer currentPage) {
		 Pager<IUserInf> pager=iUserInfDao.getListByPage(user, pageSize, currentPage);
		 List<IUserInf> list=pager.getList();
		 class Sort implements Comparator<IUserInf>{
			public int compare(IUserInf o1, IUserInf o2) {
				return o1.getIUI_USER_NAME().compareToIgnoreCase(o1.getIUI_USER_NAME());
			}
		 }
		 Collections.sort(list, new Sort());
		 pager.setList(list);
		return 	pager;
	}

链接地址:http://kevin12.iteye.com/blog/1953780
分享到:
评论

相关推荐

    ibatis动态多条件组合查询

    ibatis动态多条件组合查询 实例 说明

    ibatis调用oracle存储过程分页

    ibatis调用oracle存储过程分页

    ibatis 之分页

    1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于MySQL,可以写成: ```xml SELECT * FROM your_table WHERE some_condition LIMIT #{start}, #{limit} ``` ...

    spring+ibatis+oracle分页缓存源码

    总的来说,"spring+ibatis+oracle分页缓存源码"项目展示了如何在Spring管理的环境中,利用iBatis和Oracle数据库实现高效的数据分页和缓存策略。通过理解和实践这些技术,开发者可以构建出更加健壮、响应快速的Web...

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

    综上所述,这个实例展示了如何整合Struts2、Spring、iBatis和Oracle来构建一个完整的Web应用,实现了动态分页搜索和附件上传功能。这种架构具有良好的可扩展性和可维护性,适用于各种中大型企业级项目。开发者可以...

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

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

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

    开发者可能在Web服务器上配置了SSI支持,同时在后端设置了Ibatis与Oracle数据库的连接,前端使用JavaScript和AJAX来与后端进行交互,实现动态加载分页数据。 从"压缩包子文件的文件名称列表"来看,虽然具体文件内容...

    一个完整的oracle+ibatis小项目

    Oracle 和 iBatis 是两个在 Java Web 开发中广泛应用的技术。Oracle 是一款强大的关系型数据库管理系统,而 iBatis 是一个优秀的持久层框架,它能够将 SQL 与 Java 代码分离,提供更灵活的数据库访问方式。在这个"一...

    spring+ibatis+jsp集成实现数据库查询分页

    本教程将深入探讨如何使用Spring、iBatis和JSP这三个组件来集成实现数据库查询和分页功能。这三个技术结合,能够构建出高效、灵活且易于维护的数据访问层。 首先,Spring是一个开源的应用框架,提供依赖注入(DI)...

    Ibatis 2.3.4 数据库无关分页

    在2.3.4这个版本中,Ibatis 提供了数据库无关的分页功能,这是一种在不依赖特定数据库语法的情况下实现分页查询的方法,有助于提高代码的可移植性和维护性。 数据库无关分页的核心思想是将分页参数(如当前页数和每...

    ibatis动态SQL标签用法

    iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成...通过使用动态SQL片段和动态条件分页查询,我们可以提高代码的可重用性、查询效率和灵活性。

    ibatis+oracle实例

    在IT行业中,数据库管理和持久化框架是至关重要的技术领域,而`ibatis+oracle`的组合就是这样的一个经典实例。Ibatis,一个轻量级的Java ORM(对象关系映射)框架,允许开发者将SQL语句与Java代码分离,提高了数据库...

    oracle ibatis 配置

    现在我们来详细探讨如何配置 iBatis 以支持 Oracle 数据库。 首先,我们需要在项目中引入 iBatis 相关的依赖库。通常,这可以通过 Maven 或者 Gradle 这样的构建工具完成。对于 Maven,可以在 `pom.xml` 文件中添加...

    ibatis_动态查询条件

    iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以...

    iBATIS模糊查询

    iBATIS模糊查询 iBATIS模糊查询是指使用iBATIS框架实现模糊查询的方法。模糊查询是指在数据库中搜索包含指定字符串的记录,通常使用LIKE谓词来实现。 在iBATIS中,模糊查询可以通过在映射文件中定义SQL语句来实现...

    ibatis实现分页技术

    Ibatis实现分页技术主要依赖于SQL语句中的分页关键字和动态参数,通过在Mapper接口、Controller层和服务层合理封装,可以实现灵活的分页功能。如果配合使用分页插件,如PageHelper,将使分页操作更加便捷。在实际...

    iBatis条件查询

    而"iBaits按条件查询及分页功能"进一步强调了这个资源关注的重点,即利用iBatis实现基于用户输入条件的查询,并结合分页技术优化大数据量的展示。 总的来说,这个资源适合对半自动化持久层框架感兴趣的开发者,尤其...

    oracle 的ibatis驱动程序包

    包含了ibatis及jdbc的驱动,需要的可以下载

    ibatis分页

    标题中的“ibatis分页”指的是在使用iBATIS(一个SQL映射框架)时,如何实现数据库查询结果的分页显示。iBATIS通过XML配置文件或注解方式将Java代码与SQL语句分离,提供了更灵活的数据库操作方式。在处理大量数据时...

    IBatis完成单表基本的数据库操作 模糊查询

    标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...

Global site tag (gtag.js) - Google Analytics