`

iBATIS动态查询的实现浅析

阅读更多
iBATIS动态查询的实现主要是在iBATIS中使用安全的拼接语句,动态查询

  iBATIS比JDBC的优势之一,安全高效

  iBATIS动态查询实例:(说明文字在注释中)

﹤ 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 ﹥ 

  iBATIS动态查询解释:

  用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 ﹥ 

  iBATIS动态查询几个常用属性

  ﹤ isPropertyAvailable ﹥  属性是存在

  ﹤ isNotPropertyAvailable ﹥  属性不存在

  ﹤ isNull ﹥  属性值是null

  ﹤ isEmpty ﹥  判断Collection.size ﹤ 1 或String.length()﹤1

  ﹤isEqual ﹥  等于

  ﹤ isNotEqual ﹥  不等于

  ﹤ isGreaterThan ﹥  大于

  ﹤ isGreaterEqual ﹥  大于等于

  ﹤ isLessThan ﹥  小于

  ﹤ isLessEqual ﹥  小于等于

分享到:
评论

相关推荐

    iBATIS教程之入门浅析借鉴.pdf

    与Hibernate和Apache OJB等一站式ORM解决方案不同,iBATIS允许开发者更自由地控制SQL查询,提供了更高的灵活性。这个框架由SQL Maps和Data Access Objects (DAOs)两个主要组件构成,还有一些辅助工具。 **SQL Maps*...

    iBATIS教程之快速入门浅析

    iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,简称O/R Mapping),使得开发者可以将关注点集中在业务逻辑上,而无需过多地处理数据库操作的细节。与Hibernate等其他...

    ibatis的两种方式实现批处理.doc

    iBatis批处理实现方式浅析 iBatis是一个功能强大的持久层框架,提供了多种方式来实现批处理操作。批处理是指将多个SQL语句组合成一个批处理单元,然后将其执行到数据库中,以提高数据库操作的效率。在iBatis中,...

    ibatis 学习资料

    1. **联合查询的使用.jpg**:这可能是一个关于iBatis如何实现多表联合查询的示例。在iBatis中,可以通过和标签来定义复杂的SQL查询,包括JOIN操作,以此来获取多个表的数据。 2. **iBATIS.in.Action.pdf.lnk**:这...

    struts入门教程

    它不仅继承了Struts1在MVC模式上的成功实践,还吸取了WebWork框架的动态方法调用和拦截器链机制的优点,实现了更高级别的组件化和模块化,使得开发者能够以更少的代码量构建更为复杂的应用。 #### 三、Struts2的...

    轻松入门之struts2

    包括Struts2的核心概念、表单验证、国际化实现、拦截器、IOC模式探讨、Struts2标签的使用、OGNL表达式语言、文件上传下载功能、视图的浅析、与AJAX、Hibernate、Spring、iBatis、JQuery等技术的集成以及具体的应用...

    struts2的速成教程,充电的都来看了

    - **Struts2与iBatis集成**:指导如何在Struts2项目中引入iBatis,实现数据持久化层的开发。 #### 十六、其他集成 - **与其他技术集成**:探讨Struts2与更多技术栈的集成方案,如RESTful Web Services、SOAP Web ...

    struts2入门教程

    - **操作CSS**:演示如何使用jQuery进行CSS样式的动态修改。 - **操作DOM**:介绍如何利用jQuery进行DOM元素的选择、添加、删除等操作。 - **处理文本**:演示jQuery处理文本内容的方法。 - **处理XML/JSON**:讨论...

    struts2经典入门教程

    11. 视图浅析:Struts2将视图实现的细节留给开发者,可以使用JSP、Freemarker、Velocity等模板引擎来实现。 12. 集成AJAX:Struts2可以与AJAX技术相结合,提供丰富的JavaScript支持,包括对JSON的支持,以实现异步...

    浅析Spring和MyBatis整合及逆向工程

    值得注意的是,早期的ibatis与Spring的整合由Spring官方提供,但现在MyBatis已经提供了与Spring的整合支持。 整合配置是整个过程中关键的一步。首先,我们需要在`applicationContext.xml`中配置SqlSessionFactory和...

    Struts2轻松入门,合适入门的朋友。

    IBATIS是一个流行的持久层框架,Struts2可以通过简单的配置来与IBATIS进行集成。 #### 13.1 集成HIBERNATE HIBERNATE是一个强大的对象关系映射(ORM)框架,可以轻松地与Struts2集成,提供数据库操作的支持。 ###...

    Struts2入门教程。包括jquery集成等。入门必看

    - **Struts2中OGNL**:解释如何在Struts2中利用OGNL表达式来动态绑定数据。 - **OGNL使用示例**:通过具体例子展示OGNL的应用场景。 #### 九、上传下载 - **文件上传**:介绍如何使用Struts2进行文件上传。 - **...

    struts2系列教程

    - **3.1 Struts2的体系结构**:MVC架构下的具体实现方式,包括模型(Model)、视图(View)、控制器(Controller)各自的作用。 - **3.2 Struts2配置文件**:主要讲解`struts.xml`文件的作用、格式及配置项。 - **3.3 ...

Global site tag (gtag.js) - Google Analytics