`
lgl669
  • 浏览: 169479 次
  • 性别: 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 Maps开发指南.pdf

    组合键值或多个复杂参数属性 支持Parameter Map和Result Map的数据类型 缓存Mapped Statement结果集 只读 VS 可读写 Serializable可读写缓存 缓存类型 动态Mapped Statement 二元条件元素 一元条件元素 其他元素 ...

    iBATIS 帮助文档

    SQL Maps (com.ibatis.sqlmap.*)......................................................................................................5 SQL Map的概念........................................................

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    集合在遍历过程中,有时需要对符合一定条件的元素进行删除,下列哪些说法是正确的:B A .在 foreach 循环里进行元素的 remove操作。 B .使用Iterator方式,如果有并发,需要对Iterator对象加锁。 C .Iterator...

    Java面试宝典2010版

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 17.介绍一下Hibernate的二级缓存 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, ...

    最新Java面试宝典pdf版

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    Java面试笔试资料大全

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    JAVA面试宝典2010

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    Java面试宝典-经典

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    java面试题大全(2012版)

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    Java面试宝典2012版

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message...

    java面试宝典2012

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 135 17.介绍一下Hibernate的二级缓存 135 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    Java面试宝典2012新版

    16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate的二级缓存 123 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message ...

    Java 面试宝典

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? .......................................................................................................

Global site tag (gtag.js) - Google Analytics