1.sql 将常用sql抽取出来,在需要的地方includ
<sql id="bankColumns"> id,bankAccount,bankName</sql>
<select id="selectAll" resultMap="BankMap">
select
<include refid="bankColumns" />
from bank
</select>
2.if 用于判断
<select id="select" parameterType="Bank" resultMap="BankMap">
select
<include refid="bankColumns" />
from bank
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="bankName != null"> bankName = #{bankName}</if>
<if test="bankAccount != null">and bankAccount = #{bankAccount}</if>
</trim>
<!--
<where> <choose> <when test="bankName != null"> and bankName =
#{bankName} </when> <when test="bankAccount != null"> and bankAccount
= #{bankAccount} </when> <otherwise> and 1=1 </otherwise> </choose>
</where>
-->
</select>
3.choose用于选择
<select id="select" parameterType="Bank" resultMap="BankMap">
select
<include refid="bankColumns" />
from bank
<where>
<choose>
<when test="bankName != null">
and bankName = #{bankName}
</when>
<when test="bankAccount != null"> and bankAccount
= #{bankAccount} </when>
<otherwise> and 1=1 </otherwise>
</choose>
</where>
</select>
4.foreach用于遍历循环
<select id="selectBank" resultMap="BankMap" parameterType="list"
useCache="true" flushCache="false">
select
<include refid="bankColumns" />
from bank where id in
<foreach index="index" item="item" collection="list" open="("
separator="," close=")">
#{item}
</foreach>
</select>
note:
数组类型,在配置文件用数组的组成类型。
如果传入的参数是数组, 系统会自动将参数包装成map,name为“array”
如果传入的参数是list,系统会自动将参数包装成map,name为“list”
如果传入的参数是map, 系统会自动将参数包装成map,name为“list”
作为collection的参数
5.set 用于更新
<update id="update" parameterType="Bank">
update bank
<set>
<if test="bankName != null"> bankName = #{bankName},</if>
<if test="bankAccount != null"> bankAccount = #{bankAccount},</if>
</set>
where id=#{id}
</update>
note:where,set动态产生sql关键字,
where 会去掉where 后面的and 和or.
set 会去掉set后面的,号
分享到:
相关推荐
在探讨ibatis中的动态SQL(Dynamic SQL)及`prepend`的使用时,我们首先需要对ibatis有一个基本的理解。ibatis是一种开源的数据访问层框架,它简化了Java应用程序与数据库之间的交互过程。通过使用XML配置文件来定义...
iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,...
`<dynamic>`标签是iBATIS动态标签的核心,它允许在其内部包含一系列的条件标签,根据不同的条件来决定哪些部分应该被插入到最终的SQL语句中。`<dynamic>`标签有三个主要属性: 1. `prepend`: 在动态内容前添加的字符...
同时,为了避免数组为空或为null时引发的SQL语法错误,iBATIS还提供了`<isNotNull>`和`<dynamic>`标签进行条件判断,确保了代码的健壮性和安全性。 ### 传递参数只含有一个数组 最后,当参数只包含一个数组时,...
ibatis,ibatis,ibatis,ibatis,ibatis
### ibatis Dynamic SQL 用法详解 #### 一、引言 ibatis 是一款非常流行的持久层框架,它简化了 Java 应用程序与数据库之间的交互。Dynamic SQL 功能是 ibatis 中的一项重要特性,允许开发者根据运行时的条件动态...
6. **Dynamic SQL**:允许在XML映射文件中进行条件判断,动态生成SQL语句,提高了SQL的灵活性和复用性。 7. **Transactions**:SQL Maps支持声明式和编程式的事务管理,确保数据的一致性和完整性。 通过使用iBATIS...
根据给定的文件信息,以下是对“Ibatis常用...Ibatis通过其动态SQL标签如`iterate`, `isNotNull`, `dynamic`等提供了极高的灵活性,能够有效应对复杂多变的业务需求。掌握这些基本用法对于提升Ibatis开发效率至关重要。
iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...
动态SQL是Ibatis的一大亮点,但在3.x中,动态SQL表达式变得更加强大,可以更好地处理复杂的查询条件。例如,`<if>`、`<choose>`、`<when>`、`<otherwise>`等标签的使用,让SQL语句可以根据条件动态生成,提高了代码...
5. **Dynamic SQL**:iBATIS的动态SQL功能使得开发者能够在运行时根据条件构造SQL,避免了大量冗余的SQL语句,提高了代码的复用性。 6. **Transaction Management**:iBATIS支持JDBC和Spring两种事务管理方式,可以...
3. **iBATIS-SqlMaps-2-Tutorial_cn.pdf**:这是iBATIS SQL Maps 2的中文教程,可能包含一系列逐步的教学章节,指导初学者从零开始学习iBATIS,包括安装环境、创建第一个SQL Map、处理结果集、使用动态SQL以及处理...
2. Dynamic SQL:iBATIS支持动态SQL,这意味着你可以根据条件在运行时构建SQL语句,极大地提高了灵活性。例如,你可以使用if、where、choose(when/otherwise)等元素实现条件判断。 3. Mapped Statements:每个SQL...
3. SQL Session:SQL Session是iBATIS与数据库进行交互的接口,负责执行SQL语句并管理事务。一个Session对应一次数据库连接,用于执行一系列的操作,最后通过提交或回滚来结束事务。 4. Statement:Statement在...
6. **Dynamic SQL**:iBATIS支持动态SQL,允许在SQL语句中使用条件判断,提高SQL的灵活性和可维护性。 7. **Transactions**:iBATIS提供了事务管理功能,可以控制SQL操作的原子性,确保数据的一致性。 8. **Cache*...
**IBatis SQL Maps 入门教程** 在Java Web开发领域,数据访问层的实现往往是一个重要的环节。Ibatis,作为一个轻量级的持久层框架,为开发者提供了灵活的SQL映射机制,使得数据库操作变得更加简单。这篇入门教程将...
5. **Dynamic SQL**: iBATIS 提供了动态 SQL 功能,允许在 SQL Map 文件中使用条件语句,如 `if`、`choose`、`when`、`otherwise` 等,根据输入参数的不同生成不同的 SQL 语句。 6. **Transaction Management**: ...
在MyEclipse中,可以通过New -> Dynamic Web Project创建一个基于Struts的项目,然后添加Ibatis的相关依赖,如`ibatis-core.jar`和`sqljdbc4.jar`(MSSQL的JDBC驱动)。JDK1.6则是项目运行的基础,确保兼容性。 在`...