`
hua04104
  • 浏览: 248799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ibtis的where子句问题

阅读更多
最近遇到sql语句在pl/sql里能查出数据,但直接放到ibatis配置文件里却查询结果为空,语句为:
      select p.* from t_petitionletter p join t_processflow f on p.processflow = f.id where f.flowstate = '办理'

发现ibatis不支持直接在配置文件里写where子句,需要使用ibatis的动态where子句标签

<select id="selectPetitionLetterForFlow" resultMap="PetitionLetterResult" parameterClass="string">
  	select p.* from t_petitionletter p join t_processflow f on p.processflow = f.id 
  	<dynamic prepend="where">
  		<isNotEmpty prepend="and">
  		f.flowstate = #flowstate#
  		</isNotEmpty>
  	</dynamic>
  </select>
分享到:
评论

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    - 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis的集成: - Struts作为MVC框架,主要负责视图与控制器的交互。在项目中,`...

    ibatis教程,ibatis帮助文档

    1. 接收对象参数,用于设置更新语句的输入值或查询语句的WHERE子句条件。 2. 执行映射的Statement,iBATIS框架创建PreparedStatement,使用参数对象,执行SQL并从结果集中构建返回对象。 3. 返回结果,如果是更新...

    ibatis2.3.4.rar

    5. 动态SQL:Ibatis的动态SQL功能非常强大,你可以根据条件动态构建WHERE子句,减少代码重复,提高可维护性。 6. 异常处理:Ibatis抛出的异常通常是SqlException,你应该适当地捕获和处理这些异常。 在使用Ibatis ...

    ibatis基础教学文档

    1. 接收对象参数,该参数用于设置更新语句的输入值或查询语句的WHERE子句。 2. 执行映射的Statement,iBATIS创建PreparedStatement,填充参数,执行SQL并从结果集中构建返回对象。 3. 返回结果,对于更新操作,返回...

    ibatis mybatis 分页 crud 完整代码

    - **Update(更新)**: 更新已有记录,Update语句配合Where子句指定更新条件。 - **Delete(删除)**: 删除记录,Delete语句配合Where子句指定删除条件。 5. **书籍资源(books)**: 压缩包中的"books"可能是一...

    ibatis日期格式.doc

    例如,通过`&lt;if&gt;`标签来增加一个WHERE子句,检查子分类的数量是否为0。 - **问题2**: 缺少批量删除小组功能,但配置了多个复选框。这可能导致用户误解。在iBatis中,实现批量删除可以通过动态SQL,使用`IN`操作符...

    Ibatis jar

    例如,可以根据条件动态生成WHERE子句,极大地提高了代码的可维护性和复用性。 另外,Ibatis还支持ResultMap,用于将查询结果映射到Java对象。ResultMap不仅可以自动匹配列名与字段名,还可以处理复杂的一对多、多...

    iBATIS2.0学习总结

    通过定义`&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, `&lt;delete&gt;`等标签,可以声明SQL语句,并且可以设置参数映射和结果集映射,使得输入的数据对象(如POJO或Map)能够与SQL的WHERE子句对应,而查询结果则可以自动映射回...

    IBATISDAO库类操作

    - **更新操作**:`update()`方法用于更新已存在的记录,它需要传入待更新的对象,IBATIS会根据对象的属性匹配SQL语句中的WHERE子句。 - **删除操作**:`delete()`方法根据指定的条件删除记录,条件通常由对象的主键...

    ibatis的dynamicSQL中,关于prepend的使用

    这种情况下,通常用于构建WHERE子句。 - **`prepend="and"`**:表示在动态生成的SQL片段前加上`and`关键字。这种情况下,通常用于连接多个条件表达式。 #### 3. 使用示例 以下面的代码为例: ```xml select * ...

    ibatis拼接字符串

    StringBuilder sb = new StringBuilder("select * from student where"); ``` 这里定义了一个字符串数组 `ids`,存储了一组 ID 值,并创建了一个 `StringBuilder` 对象 `sb`,初始化 SQL 查询语句的基础部分。 ###...

    iBATIS框架源码剖析pdf第二部分

    例如,你可以根据条件动态地添加WHERE子句,或者改变JOIN操作。这通过使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`等标签实现。 此外,你会学习到iBATIS的参数映射和结果映射机制。参数映射将Java对象的属性与...

    Ibatis的应用和配置

    2. 动态SQL:Ibatis支持动态SQL,可以在XML映射文件中编写条件语句,实现灵活的查询逻辑,比如根据条件选择性地包含或排除某些WHERE子句。 3. 缓存机制:Ibatis内置了缓存功能,可以在一定程度上提高数据访问效率,...

    ibatis1.rar_ibatis

    例如,可以根据条件动态地添加WHERE子句,极大地提高了代码的可复用性和灵活性。 7. **Ibatis的优势** Ibatis的优势在于它的灵活性,它不强制开发者遵循特定的数据访问模式,而是允许自由设计SQL语句。此外,通过...

    ibatis快速入门

    例如,你可以根据条件动态地生成WHERE子句,或者使用标签来遍历集合并生成IN语句。这对于处理复杂的数据筛选和更新需求非常有用。 其次,"ibatis的入门"PDF文件可能包含了一步步引导你从零开始学习Ibatis的教程。...

    IBATIS开发使用实例

    1. **多表连接**:通过`JOIN`关键字或内嵌`WHERE`子句实现多个表的关联,本例中涉及到`T_PUB_TASK_GROUP`、`T_PUB_TASK`、`T_PUB_COVERAGE`和`T_COMM_CODE`四张表的连接。 2. **条件筛选**:`WHERE`子句用于筛选出...

    一个程序员的自省 iBATIS In Action:什么是iBATIS(一)

    输入参数常用于WHERE子句,而输出则是SELECT子句中的列。通过XML配置文件,开发者可以明确指定SQL语句的参数和结果集如何映射到对象。例如,一个简单的XML描述文件可以定义一个SELECT查询,接收一个整型参数并返回...

    ibatis 之分页

    在分页查询方面,Ibatis允许我们在SQL语句中直接添加LIMIT和OFFSET子句,或者使用自定义的分页插件来实现。 1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于...

    iBATIS动态标签

    通过这些标签,开发者可以在iBATIS的SQL映射文件中实现灵活的动态SQL,如示例所示,可以根据`Account`对象的`username`属性是否存在和其值来决定`WHERE`子句的内容,从而实现更高效和可维护的数据库查询。

Global site tag (gtag.js) - Google Analytics