`
hn_archer
  • 浏览: 133051 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

iBatis高级应用(中)--动态SQL

 
阅读更多

九:动态SQL

动态SQL里面的标签类似STRUTS里面的标签,不多说,看看配置就行了!

<sqlMap>
 
    <!--   动态查询1-->
    <select id="getOrders1" parameterClass="com.air.Account"
       resultClass="com.air.Product">
       SELECT
           orders.id as id,
           orders.product as product,
           orders.customer as customer
       FROM orders
       <dynamic prepend=" WHERE ">
           <isNull property="username">customer IS NOT NULL</isNull>
           <isNotNull property="username">
              orders.customer=#username#
           </isNotNull>
       </dynamic>
    </select>
 
    <!--   动态查询2-->
    <select id="getOrders2" parameterClass="com.air.Account"
       resultClass="com.air.Product">
       SELECT
           o.id as id,
           o.product as product,
           o.customer as customer
       FROM orders o
           <isNotNull property="username">
              INNER JOIN user_account a ON o.customer=a.username
           </isNotNull>
           <dynamic prepend="where ">
<isNotEmpty property="groupname" prepend="and "  open="(" close=")">
                  a.groupname=#groupname#
              </isNotEmpty>
           </dynamic>
    </select>
 
    <!--   动态查询3-->
    <select id="getOrders3" parameterClass="com.air.Product"
       resultClass="com.air.Product">
       SELECT
           orders.id as id,
           orders.product as product,
           orders.customer as customer
       FROM orders
       <dynamic prepend="WHERE ">
    <isNotEmpty property="product" prepend="and" open="(" close=")" >
              product=#product#
           </isNotEmpty>
    <isNotEmpty property="customer" prepend="and"  open="(" close=")">
              customer=#customer#
           </isNotEmpty>
       </dynamic>
    </select>
   
    <!--   动态查询4-->
    <select id="getOrders4" parameterClass="com.air.Product"
       resultClass="com.air.Product">
       SELECT
           *
       FROM orders
       <dynamic prepend="WHERE  ">
    <iterate property="keywords"  open="(" close=")" conjunction="OR">
              product=#keywords[]#
           </iterate>
       </dynamic>
<!--       <dynamic prepend="WHERE product IN  ">-->
<!--          <iterate property="keywords"  open="(" close=")" conjunction=","> -->
<!--              #keywords[]#-->
<!--          </iterate>-->
<!--       </dynamic>-->
    </select>
</sqlMap>

 

分享到:
评论

相关推荐

    ibatis-sqlmaps-2_cn

    此外,教程还会涵盖动态SQL,这是IBATIS的一大亮点,允许在运行时构建和修改SQL语句,提高了代码的复用性和可维护性。 在使用IBATIS的过程中,你可能会遇到参数映射和结果映射的问题。《ibatis-sqlmaps-2_cn》将...

    iBATIS-SqlMaps-2 PDF文档资料中文

    8. **高级特性**:可能包括动态SQL、存储过程的支持、批处理操作、一对一和一对多关联映射等进阶话题。 9. **实战教程**:通过具体的示例代码,展示如何创建一个完整的iBATIS应用程序,从数据库设计到编写SqlMap...

    iBATIS-SqlMaps-2_cn.rar

    iBATIS-SqlMaps-2_cn.rar 是一个包含有关iBATIS SqlMaps 2.0中文版的资源压缩包,适合那些希望深入了解这...此外,了解iBATIS的高级特性如结果映射、缓存机制和动态SQL,可以帮助开发者编写出更加高效和可维护的代码。

    iBATIS-SqlMaps-2-Tutorial_cn

    - **动态 SQL**:支持根据条件动态生成 SQL 语句,提高代码复用性和灵活性。 #### 8. 进阶主题 - **高级映射**:如一对多、多对多关系的映射。 - **缓存机制**:SQLMap 支持二级缓存机制,可以有效提升查询性能。 -...

    iBATIS-SqlMaps-2-Tutorial_en.pdf

    ### iBATIS-SqlMaps-2 教程知识点解析 #### 一、简介与背景 iBATIS(现称为MyBatis)是一个优秀的持久层框架,它极大地简化了Java...同时,了解iBATIS提供的高级特性也将有助于开发出更加灵活、高性能的应用程序。

    iBATIS-SqlMaps 中文

    在实际应用中,iBATIS的一个显著优点是它可以灵活地处理复杂的SQL,而不像ORM框架那样将SQL完全抽象化。这使得开发者可以充分利用数据库的特性,提高查询效率。然而,这也意味着开发者需要对SQL有较深入的理解。 总...

    ibatis-in-action

    - **语法介绍**:详细阐述iBATIS中动态SQL的语法结构。 - **案例分析**:通过具体案例来展示动态SQL的实际应用场景。 ### 三、iBATIS在实际工作中的应用 #### 3.1 性能优化 - **缓存机制**:介绍iBATIS中的缓存...

    iBATIS-SqlMaps中文教程集合

    在“iBATIS-SqlMaps中文教程集合”中,你将找到四本深入浅出的教程,这些教程涵盖了iBATIS的基础使用、高级特性和实战案例,帮助开发者快速掌握并熟练运用iBATIS解决项目中的实际问题。 1. **基础篇** - iBATIS...

    iBATIS-SqlMaps,ibatis映射文件

    iBATIS-SqlMaps是Java开发中的一个持久层框架,它...通过理解和熟练运用SqlMapConfig.xml和SqlMap.xml文件,开发者可以高效地实现数据的CRUD操作,同时还能享受到iBATIS提供的高级特性,如动态SQL和复杂的数据映射。

    iBATIS-3-User-Guide

    - **iBATIS**:iBATIS 是一个开放源代码的框架,用于简化 Java 应用程序中的数据库访问层(DAO)开发工作。它将 SQL 命令与 Java 代码分离,并通过 XML 配置文件来管理 SQL 映射,从而简化了 JDBC 的复杂性。 #### ...

    ibatis2.3.4 jar包

    Ibatis,全称为MyBatis,是一款优秀的Java数据持久层框架,它支持定制化SQL、存储过程以及高级映射。Ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Ibatis可以被看作是一个SQL Map,它将SQL语句与...

    ibatis的3个jar包.rar

    同时,Ibatis支持动态SQL,可以实现复杂的查询逻辑,而无需在代码中拼接SQL字符串,降低了SQL注入的风险。 Ibatis与传统的JDBC相比,更注重于将SQL和Java代码分离,提高了代码的可维护性和可读性。此外,它还支持...

    ibatis-sqlMap-入门教程(代码)

    总之,"ibatis-sqlMap-入门教程(代码)"是一个全面的指南,旨在帮助初学者理解和应用MyBatis框架,从零开始搭建项目,编写SQL映射文件,配置数据源,以及执行数据库操作。通过这个教程,学习者可以掌握MyBatis的...

    iBATIS-SqlMaps开发指南.rar

    《iBATIS-SqlMaps开发指南》是一本深入解析iBATIS框架的实用教程,针对的是那些希望在Java应用中实现灵活、高效数据库操作的开发者。iBATIS,作为一个轻量级的持久层框架,它提供了SQL映射功能,允许开发者将SQL语句...

    ibatis

    标题 "ibatis" 提到的是一个著名的开源Java持久层框架——iBATIS,它在过去的Web应用程序开发中占据了重要地位。iBATIS 提供了一种将SQL查询与Java代码分离的方法,增强了数据库操作的灵活性和可维护性。"ibatis in ...

    ibatis sql 语句的编写

    本文将详细介绍ibatis中的SQL语句编写方法,主要包括查询、插入、更新和删除等基本操作,并通过一个具体的例子来加深理解。 #### 二、ibatis简介 Ibatis是一个基于Java的持久层框架,它支持定制化SQL、存储过程...

    iBatis SQL Maps开发指南.pdf

    通过以上总结,可以看出iBatis SQL Maps是一个功能强大的框架,不仅支持灵活的SQL语句定制,还提供了丰富的配置选项和高级功能,如动态SQL、缓存机制等,使得开发者能够在保持高性能的同时,更加便捷地进行数据库...

    iBATIS_DBL-2.1.7.597.zip

    iBATIS是一个开源的Java框架,它简化了数据库和应用程序之间的交互,使得开发者可以将SQL语句直接写在XML配置文件中,避免了直接在Java代码中进行数据库操作,提高了代码的可读性和可维护性。 在压缩包中,我们可以...

    ibatis开发手册及入门教程

    #### 五、iBATIS SQL Maps 的高级特性 - **动态SQL**:支持根据条件动态生成SQL语句。 - **缓存机制**:提供了一级缓存和二级缓存的支持,有助于提高性能。 - **分页查询**:通过特定的SQL语句或插件实现分页功能。...

    ibatis 教程 帮助文档 中文版

    1. `ibatis-sqlmaps-2_cn.pdf`:这是Ibatis SQL Maps 2的中文版核心文档,包含了关于Ibatis的基础概念、配置、映射文件、事务管理、结果映射、动态SQL以及高级特性的详尽解释。通过阅读这份文档,你可以了解如何配置...

Global site tag (gtag.js) - Google Analytics