最近遇到拼接ibatis中的sql语句的问题,想要得到的sql如下形式:
select * from table where xxx = "xxx" and (xxx="xxx" or xx1="xx1")
开始对于括号怎么加也确实不太明白,后面参考别人的博客
http://lyfei022.blog.163.com/blog/static/82558312009313104138320/才改正确
<select id="condition">
<![CDATA[
select * from table where 1=1
]]>
<dynamic prepend="and">
<isNotEmpty prepend="and" property="starttime">
<![CDATA[ starttime >= #starttime# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="endtime">
<![CDATA[ starttime <= #endtime# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="rentcompany">
<![CDATA[ rentcompany like '%$rentcompany$%' ]]>
</isNotEmpty>
</dynamic>
<dynamic prepend="and" open="(" close=")">
<isNotNull prepend="or" property="bilkcar">
<![CDATA[ bilkcar = 1 ]]>
</isNotNull>
<isNotNull prepend="or" property="guarantycar">
<![CDATA[ guarantycar = 1 ]]>
</isNotNull>
<isNotNull prepend="or" property="filchpart">
<![CDATA[ filchpart = 1 ]]>
</isNotNull>
<isNotNull prepend="or" property="causetrouble">
<![CDATA[ causetrouble = 1 ]]>
</isNotNull>
<isNotNull prepend="or" property="nohandle">
<![CDATA[ nohandle = 1 ]]>
</isNotNull>
<isNotNull prepend="or" property="inarrears">
<![CDATA[ inarrears = 1 ]]>
</isNotNull>
</dynamic>
</select>
<dynamic prepend="and">这个and不能少
相关推荐
### ibatis and和or联合查询知识点 #### 一、ibatis简介 ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀开源数据访问框架。ibatis消除了几乎所有的JDBC对象操作,提供了一个简单的基本API,它通过XML或...
Ibatis支持嵌套查询和联合查询。在XML映射文件中,你可以使用标签或在标签内直接编写JOIN语句,以实现多个表的数据联合查询。记得在Mapper接口中定义对应的方法。 6. **Service层和DAO层**: 在实际项目中,我们...
### iBatis 多表查询知识点详解 #### 一、iBatis简介 iBatis 是一款优秀的持久层框架,它将 SQL 映射到 Java 对象,简化了 JDBC 编程过程中的繁琐操作,提高了开发效率。iBatis 的核心功能包括 SQL 映射、动态 SQL...
ibatis动态多条件组合查询 实例 说明
在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,我们有两个表:`book`和`user`。`book`表存储书籍信息,包含`oid`(主键)和`name`字段。`user`表存储用户信息,...
### 操作数据库iBATIS查询详解 #### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是...
在多表查询中,Ibatis 提供了多种方式来处理复杂的关联查询,包括一对一、一对多、多对一和多对多等关系。在这个例子中,我们将探讨如何在 Ibatis 中实现一对多的关系查询。 首先,我们创建了两个表:`book` 和 `...
- 使用`AND`和`OR`操作符来组合多个条件,例如,`<isNotEmpty prepend="AND" property="dismissStatusList">...`,如果`dismissStatusList`非空,会添加额外的`AND`条件。 6. **参数映射**: - `parameterClass`...
在本话题中,我们将探讨如何在使用iBatis框架与Oracle数据库时实现树形查询。 首先,iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,提供了比传统JDBC更高级的抽象层,使得...
标题中的“myBatis or ibatis 神器”指的是两个知名的Java持久层框架——myBatis和iBatis。这两个框架在Java开发中扮演着重要角色,它们简化了数据库操作,让开发者能够更加专注于业务逻辑,而不是底层的SQL查询。 ...
iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `<dynamic>` 元素来实现的,该元素可以...
这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解Ibatis动态SQL的基本概念。在Ibatis的XML映射文件中,我们可以通过条件标签来构建动态SQL。这些标签...
**知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` 的方式更为安全且易于实现。 - 正确的语法应为 `name ...
根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...
此外,资源中的"按条件查询三国数据库"可能包含了一个基于三国历史数据的示例,这有助于开发者更好地理解和实践iBatis的条件查询功能。通过这样的例子,你可以看到如何在实际数据库模型上应用iBatis,比如如何处理...
总结,主子表查询在iBATIS中通过配置XML映射文件,结合Java代码和SQL脚本实现。log4j作为日志管理工具,可以帮助开发者更好地查看和分析查询结果。理解这些概念并熟练应用,对于进行复杂数据库操作的Java开发工作至...
### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...
在Spring框架中,可以使用`@Autowired`注解将SqlSessionTemplate或SqlSessionFactory注入到服务层,方便进行iBatis的事务管理和查询操作。 ### 11. 示例 以下是一个多表查询的XML映射文件示例: ```xml SELECT *...
iBatis并不是像Hibernate那样完全自动管理数据库操作,而是将SQL语句的编写权交给开发者,这样可以更好地控制查询性能和复杂性。在进行连接查询时,iBatis允许我们在Mapper XML文件中编写自定义的JOIN语句,或者通过...