`
dengminhui
  • 浏览: 167951 次
  • 来自: ...
社区版块
存档分类
最新评论

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 ﹥

 

用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 ﹥ 小于等于

 

 

转载自:http://hi.baidu.com/dxbg_134/blog/item/0f90d909b7fe8bd863d98665.html

分享到:
评论

相关推荐

    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入门教程.pdf

    - **集成iBatis**:探索Struts2与iBatis的集成方案。 - **集成jQuery**:介绍jQuery在Struts2中的应用,包括CSS操作、DOM操作等内容。 #### 十三、案例分析 - **投票管理系统**:通过具体的案例分析,展示了Struts...

    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