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

如何进行ibatis动态多条件组合查询

阅读更多

 <!--
在ibatis中使用安全的拼接语句,动态查询
ibatis比JDBC的优势之一,安全高效
说明文字在注释中
-->


  
< select  id ="selectAllProducts"  parameterClass ="Product"  resultMap ="ProductResult" >
    select id,note from Product
       
< dynamic  prepend ="WHERE" >
       
<!--  isNotNull判断参数是否存在,Integer类型  -->
            
< isNotNull  property ="id" >
                
<!--  isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于  -->
                
< isGreaterThan  prepend =" and "  property ="id"  compareValue ="0" >
                id = #id#
                
</ isGreaterThan >
            
</ isNotNull >
            
<!--  isNotEmpty判断字串不为空,isEmpty可以判断字串为空  -->
            
< isNotEmpty  prepend =" and "  property ="note" >
            
<!--  模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换  -->
            note like '%$note$%'
            
</ isNotEmpty >
        
</ dynamic >
  
</ select >
  
用Map传参数
  
  
< select  id ="selectAllProducts"  parameterClass ="java.util.HashMap"  resultMap ="ProductResult" >
    select id,note from Product
       
< dynamic  prepend ="WHERE" >
       
<!--  isPropertyAvailable判断属性是否有效  -->
          
< isPropertyAvailable  property ="id" >
            
< isNotNull  property ="id" >
                
<!--  isLessThan判断参数是否小于compareValue,isLessEquals是小于等于  -->
                
< isLessThan  prepend =" and "  property ="id"  compareValue ="10" >
                id = #id#
                
</ isLessThan >
            
</ isNotNull >
          
</ isPropertyAvailable >
        
</ dynamic >
  
</ select >
 
<!-- ------------------------------------------------------------------几个常用属性 -->

< isPropertyAvailable >  属性是存在
< isNotPropertyAvailable >  属性不存在
< isNull >  属性值是null
< isEmpty >  判断Collection.size < 1 或String.length()<1
<isEqual
>  等于
< isNotEqual >  不等于
< isGreaterThan >  大于
< isGreaterEqual >  大于等于
< isLessThan >  小于
< isLessEqual >  小于等于

 

分享到:
评论

相关推荐

    ibatis动态多条件组合查询

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

    ibatis动态SQL标签用法

    iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的、独立的片段,然后根据不同的条件组合这些片段生成最终的SQL语句。这可以提高代码的可重用性和灵活性。 例如,在上面的代码中,我们定义了三个动态SQL片段...

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    iBATIS动态标签

    iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...

    Ibatis复杂查询语句.doc

    在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...

    ibatis and和or联合查询 .doc

    在SQL查询中,`AND` 和 `OR` 是用来连接两个或多个条件的关键字。`AND` 关键字用于组合条件,并且只有当所有组合的条件都被满足时,才会返回相应的行;而 `OR` 关键字则只要其中一个条件被满足就会返回相应的行。 ...

    ibatis 用HashMap解决resultClass映射

    例如,在一些报表系统中,用户可能需要根据不同的条件选择不同的字段进行展示,这时如果使用固定的实体类映射,则需要为每一种组合创建一个实体类,这显然是不现实的。因此,使用 `HashMap` 这种灵活的数据结构来...

    ibatis入门

    这个入门级别的教程将引导你了解 Ibatis 的基本概念和使用方法,包括增删改查操作、多条件查询以及单对象和数据集合查询。 1. **安装与配置** 在开始使用 Ibatis 之前,你需要在项目中引入 Ibatis 的依赖。如果是 ...

    ibatis2.rar

    2. 动态SQL:iBATIS支持条件查询、动态生成SQL语句,使得SQL更加灵活。 3. 参数映射和结果映射:如何将Java对象的属性和数据库表字段对应,以及如何将查询结果转化为Java对象。 4. 事务管理:iBATIS可以结合Spring...

    ibatis2.3.4.rar

    XML格式的SQL映射文件允许开发者直接写SQL,避免了ORM框架的复杂性,同时提供了动态SQL的能力,可以根据条件动态组合SQL语句。 2. SqlSession:这是Ibatis的会话接口,用于执行SQL操作。通过SqlSessionFactory创建...

    ibatis日期格式.doc

    iBatis支持动态SQL,可以利用`&lt;union&gt;`标签来组合多个查询,提高效率。 - **问题2**: 对于日志保存,建议进行更彻底的封装。这意味着可能需要创建一个通用的日志服务,将日志保存的操作抽象化,以提高代码的可重用...

    ibatis 动态代理dtd

    动态SQL是ibatis的一个强大功能,它允许根据运行时条件动态构建SQL语句。下面是一些常用的动态SQL元素及其含义: - **`&lt;isNotNull&gt;`**: 当指定的参数不为null时,包含其后的SQL片段。 - **`&lt;isNotEqual&gt;`**: 当指定...

    ibatis包

    Ibatis支持动态SQL,可以方便地根据条件构建灵活的查询,极大地提高了开发效率。 以下是Ibatis的主要组成部分和功能: 1. **SqlMapConfig.xml**:这是Ibatis的全局配置文件,包含了数据源、事务管理器、...

    关于Ibatis的jar包

    - **Example查询**:说明如何使用Ibatis的Example类进行复杂查询,包括条件组合、排序和分页。 2. **Ibatis包**: 这个文件很可能是Ibatis的完整jar包,包含了Ibatis运行所需的全部类库。这个jar包通常包括以下...

    ibatis

    - SQL Map映射文件(如`sql map mapping.htm`)是iBatis的关键部分,定义了SQL查询和结果映射,提供了动态SQL的能力,可以根据条件灵活地执行不同的查询。 - iBatis支持各种数据库,通过不同的数据库方言(Dialect...

    ibatis的dynamicSQL中,关于prepend的使用

    当使用`&lt;dynamic&gt;`标签时,可以将一系列条件组合起来,根据参数的不同值来决定是否加入到最终的SQL语句中。例如,在给定的部分内容中,可以看到`&lt;dynamic prepend="where"&gt;`这样的用法,这里的关键在于`prepend`属性...

    ibatis Example使用

    这种模式特别适合于复杂的查询需求,如多条件组合查询等。 ### 4. **Example模式的具体应用** 在提供的代码片段中,`PagekeysExample` 类是Example模式的一个具体应用实例。该类通过其内部的`Criteria` 对象来设置...

    ibatis+struts2

    5. **动态SQL**:iBatis支持条件拼接,可以根据不同参数动态生成SQL,提高了SQL的复用性。 **Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`...

    struts2+ibatis

    同时,iBatis的动态SQL功能使得在不同条件下的查询变得简单,避免了大量的if-else或switch-case代码。 Spring是一个全面的Java企业级应用框架,它提供依赖注入(DI,Dependency Injection)和面向切面编程(AOP,...

Global site tag (gtag.js) - Google Analytics