`

ibatis dynamic条件语句问题

阅读更多

ibatis 的dynamic这样写会有问题,如果有条件成立,出现where 后面会少一个and,这是因为ibatis的dynamic语句会默认把第一个条件成立的predend字段去掉,比如如果下面两个条件都成立,那么最终的语句会变成where status=status的值 and name=name的值,

where

<dynamic prepend=" ">
<isNotEmpty prepend="and" property="status">
status = #status#
</isNotEmpty>

<isNotEmpty prepend="and" property="name">
name = #name#
</isNotEmpty>

</dynamic>

所以必须得写成

where

<dynamic prepend="and">
<isNotEmpty prepend="and" property="status">
status = #status#
</isNotEmpty>

<isNotEmpty prepend="and" property="name">
name = #name#
</isNotEmpty>

</dynamic>

分享到:
评论

相关推荐

    ibatis的dynamicSQL中,关于prepend的使用

    其中,动态SQL是ibatis的一个非常强大的特性,允许开发者根据不同的条件构建出复杂的SQL查询语句。 ### 关于ibatis动态SQL中的`prepend` #### 1. 动态SQL元素 在ibatis中,`&lt;dynamic&gt;`标签是用来构建动态SQL的...

    ibatis常用sql语句

    例如,在`&lt;select&gt;`标签中,通过`&lt;dynamic prepend="where module"&gt;`可以构建带有条件的SQL查询语句,其中的`prepend`属性用于指定条件语句的前缀。这种方式不仅简化了代码,还提高了SQL语句的可读性和可维护性。 ...

    Ibatis常用sql语句

    根据给定的文件信息,以下是对“Ibatis常用SQL语句”的详细解析,涵盖了一系列Ibatis在数据操作中的应用实例。 ### Ibatis简介 Ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。Ibatis可以让...

    ibatis16个常用sql语句

    iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...

    Ibatis复杂查询语句.doc

    - `&lt;dynamic&gt;`标签用于动态生成SQL语句的部分,它允许根据传入参数的值来决定是否包含某个条件。例如,`&lt;isNotEmpty&gt;`标签用于检查参数是否为空,如果非空,则将包含其后的SQL片段。 2. **子查询**: - 在这个...

    iBATIS动态标签

    `&lt;dynamic&gt;`标签是iBATIS动态标签的核心,它允许在其内部包含一系列的条件标签,根据不同的条件来决定哪些部分应该被插入到最终的SQL语句中。`&lt;dynamic&gt;`标签有三个主要属性: 1. `prepend`: 在动态内容前添加的字符...

    IBATIS动态查询语句.doc

    IBATIS,现在更广为人知的名字为MyBatis,是一种半自动映射的持久层框架,它允许开发者以声明的方式进行SQL语句的编写,同时提供了动态SQL的功能,这使得SQL语句可以在运行时根据条件动态生成,极大地提高了SQL的...

    ibatis_动态查询条件

    在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以根据参数的值来生成不同的 SQL 语句。 在 iBatis 中,参数可以是基本类型、字符串、集合等,它们可以通过 `#` symbols 来传递给 SQL 语句。...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    例如,在上面的示例代码中,我们使用 `&lt;dynamic&gt;` 元素来定义动态 SQL 语句,在其中使用 `&lt;isNotNull&gt;`、`&lt;isGreaterThan&gt;`、`&lt;isLessThan&gt;` 等元素来构建条件语句。 这些元素可以根据参数的值动态地生成 SQL 语句...

    ibatis dynamic 用法

    Dynamic SQL 功能是 ibatis 中的一项重要特性,允许开发者根据运行时的条件动态构建 SQL 语句。本文将详细介绍 ibatis 中 Dynamic SQL 的使用方法,特别关注 `&lt;dynamic&gt;` 标签及其相关的子标签。 #### 二、Dynamic ...

    ibatis_3.0_Dynamic_Sql_设计解析(并与2.x的差异)

    标题和描述均聚焦于ibatis 3.0 Dynamic Sql的设计解析以及它与2.x版本的差异,这是一个关于ORM(对象关系映射)框架ibatis在处理动态SQL方面的重要升级和改进的主题。以下是对该主题的深入探讨: ### 重要概念:...

    Ibatis查询语句里,可以使用多表查询

    2. **条件过滤**:通过 `&lt;dynamic&gt;` 标签实现了动态 SQL,根据传入的参数决定是否添加 WHERE 子句。 3. **排序**:通过 `$page.sortFieldName$` 实现动态排序字段的选择,并且支持正序或倒序。 4. **分页**:使用 `...

    ibatis动态SQL标签用法

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

    ibatis出错调试心得

    在使用iBatis进行数据库操作的过程中,可能会遇到各种各样的问题。这些问题往往由于iBatis错误信息的隐晦性而难以快速定位与解决。本文将根据所提供的标题、描述及部分内容,详细阐述在使用iBatis时可能遇到的一些...

    iBATIS2.3及其说明文档

    2. Dynamic SQL:iBATIS支持动态SQL,这意味着你可以根据条件在运行时构建SQL语句,极大地提高了灵活性。例如,你可以使用if、where、choose(when/otherwise)等元素实现条件判断。 3. Mapped Statements:每个SQL...

    ibatis-2.3.

    5. **Dynamic SQL**: iBATIS 提供了动态 SQL 功能,允许在 SQL Map 文件中使用条件语句,如 `if`、`choose`、`when`、`otherwise` 等,根据输入参数的不同生成不同的 SQL 语句。 6. **Transaction Management**: ...

    iBatis文档\ibatis.doc

    动态SQL让开发者可以根据条件动态构造SQL语句,使用`if`, `choose`, `when`, `otherwise`等元素。例如: ```xml SELECT * FROM User WHERE &lt;dynamic prepend="WHERE"&gt; name LIKE '%$name$%' age = #age# ...

    ibatis

    SQL Maps是iBATIS的核心组件,负责定义SQL语句和Java对象之间的映射关系。这份文档可能会详细解释如何编写和配置SQL Map XML文件,以及如何在Java代码中调用这些映射进行数据操作。 3. **iBATIS-SqlMaps-2-Tutorial...

    iBATIS 2.3 API JavaDoc chm格式

    6. **Dynamic SQL**:iBATIS支持动态SQL,允许在SQL语句中使用条件判断,提高SQL的灵活性和可维护性。 7. **Transactions**:iBATIS提供了事务管理功能,可以控制SQL操作的原子性,确保数据的一致性。 8. **Cache*...

    ibatis2.X升级mybatis3.X之曲径通幽处

    最后,从Ibatis2.x到Mybatis3.x的迁移过程中,需要注意兼容性问题。升级前,需要全面评估现有的SQL Map配置、Mapper接口和实体类,确保在新的版本下能够正常工作。此外,还需要检查和更新相关的依赖库,因为Mybatis3...

Global site tag (gtag.js) - Google Analytics