<!--
在ibatis中使用安全的拼接语句,动态查询
ibatis比JDBC的优势之一,安全高效
说明文字在注释中
-->
<
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
>
<!--
------------------------------------------------------------------几个常用属性
-->
<
isPropertyAvailable
>
属性是存在
<
isNotPropertyAvailable
>
属性不存在
<
isNull
>
属性值是null
<
isEmpty
>
判断Collection.size
<
1
或String.length()<1
<isEqual
>
等于
<
isNotEqual
>
不等于
<
isGreaterThan
>
大于
<
isGreaterEqual
>
大于等于
<
isLessThan
>
小于
<
isLessEqual
>
小于等于
分享到:
相关推荐
ibatis动态多条件组合查询 实例 说明
iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的、独立的片段,然后根据不同的条件组合这些片段生成最终的SQL语句。这可以提高代码的可重用性和灵活性。 例如,在上面的代码中,我们定义了三个动态SQL片段...
以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...
在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...
在SQL查询中,`AND` 和 `OR` 是用来连接两个或多个条件的关键字。`AND` 关键字用于组合条件,并且只有当所有组合的条件都被满足时,才会返回相应的行;而 `OR` 关键字则只要其中一个条件被满足就会返回相应的行。 ...
例如,在一些报表系统中,用户可能需要根据不同的条件选择不同的字段进行展示,这时如果使用固定的实体类映射,则需要为每一种组合创建一个实体类,这显然是不现实的。因此,使用 `HashMap` 这种灵活的数据结构来...
这个入门级别的教程将引导你了解 Ibatis 的基本概念和使用方法,包括增删改查操作、多条件查询以及单对象和数据集合查询。 1. **安装与配置** 在开始使用 Ibatis 之前,你需要在项目中引入 Ibatis 的依赖。如果是 ...
2. 动态SQL:iBATIS支持条件查询、动态生成SQL语句,使得SQL更加灵活。 3. 参数映射和结果映射:如何将Java对象的属性和数据库表字段对应,以及如何将查询结果转化为Java对象。 4. 事务管理:iBATIS可以结合Spring...
XML格式的SQL映射文件允许开发者直接写SQL,避免了ORM框架的复杂性,同时提供了动态SQL的能力,可以根据条件动态组合SQL语句。 2. SqlSession:这是Ibatis的会话接口,用于执行SQL操作。通过SqlSessionFactory创建...
iBatis支持动态SQL,可以利用`<union>`标签来组合多个查询,提高效率。 - **问题2**: 对于日志保存,建议进行更彻底的封装。这意味着可能需要创建一个通用的日志服务,将日志保存的操作抽象化,以提高代码的可重用...
动态SQL是ibatis的一个强大功能,它允许根据运行时条件动态构建SQL语句。下面是一些常用的动态SQL元素及其含义: - **`<isNotNull>`**: 当指定的参数不为null时,包含其后的SQL片段。 - **`<isNotEqual>`**: 当指定...
Ibatis支持动态SQL,可以方便地根据条件构建灵活的查询,极大地提高了开发效率。 以下是Ibatis的主要组成部分和功能: 1. **SqlMapConfig.xml**:这是Ibatis的全局配置文件,包含了数据源、事务管理器、...
- **Example查询**:说明如何使用Ibatis的Example类进行复杂查询,包括条件组合、排序和分页。 2. **Ibatis包**: 这个文件很可能是Ibatis的完整jar包,包含了Ibatis运行所需的全部类库。这个jar包通常包括以下...
- SQL Map映射文件(如`sql map mapping.htm`)是iBatis的关键部分,定义了SQL查询和结果映射,提供了动态SQL的能力,可以根据条件灵活地执行不同的查询。 - iBatis支持各种数据库,通过不同的数据库方言(Dialect...
当使用`<dynamic>`标签时,可以将一系列条件组合起来,根据参数的不同值来决定是否加入到最终的SQL语句中。例如,在给定的部分内容中,可以看到`<dynamic prepend="where">`这样的用法,这里的关键在于`prepend`属性...
这种模式特别适合于复杂的查询需求,如多条件组合查询等。 ### 4. **Example模式的具体应用** 在提供的代码片段中,`PagekeysExample` 类是Example模式的一个具体应用实例。该类通过其内部的`Criteria` 对象来设置...
5. **动态SQL**:iBatis支持条件拼接,可以根据不同参数动态生成SQL,提高了SQL的复用性。 **Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`...
同时,iBatis的动态SQL功能使得在不同条件下的查询变得简单,避免了大量的if-else或switch-case代码。 Spring是一个全面的Java企业级应用框架,它提供依赖注入(DI,Dependency Injection)和面向切面编程(AOP,...