文档章节

ibatis中动态SQL_update

蘑菇头老大
 蘑菇头老大
发布于 2014/08/01 13:13
字数 229
阅读 78
收藏 0

如何知道上一篇的动态INSERT的话,动态UPDATE就很简单了,直接上XML


注意:如果<isNotEmpty>是写在一行的话,并且是第一个的话

<isNotEmpty property="realName" prepend=","><![CDATA[ REALNAME = #realName# ]]></isNotEmpty>

内容注意中间加个空格,不然会出现 update role setname=xxx 直接报错

<update id="updateRole" parameterClass="com.mmblue.model.Role">
	<![CDATA[
		UPDATE role
		SET
			gmt_modified = to_date(#gmtModified#,'yyyy-mm-dd hh24:mi:ss'),
			modifier = #modifier#
	]]>
		<dynamic>
			<isNotEmpty property="isDeleted" prepend=",">
				<![CDATA[
					is_deleted = #isDeleted#
				]]>
			</isNotEmpty>
			<isNotEmpty property="roleCode" prepend=",">
				<![CDATA[ 
					role_code = #roleCode#
				]]>
			</isNotEmpty>
			<isNotEmpty property="roleName" prepend=",">
				<![CDATA[ 
					role_name = #roleName#
				]]>
			</isNotEmpty>
			<isNotEmpty property="deptId" prepend=",">
				<![CDATA[ 
					dept_id = #deptId#
				]]>
			</isNotEmpty>
		</dynamic>
	<![CDATA[
		WHERE id = #id#
	]]>
</update>

 

 

2.再来个全部遍历的

<update id="updateUser" parameterClass="com.mmblue.domain.User">
		UPDATE MYIVR_TUSER
		<dynamic prepend="SET ">
					<isNotEmpty property="realName" prepend=","><![CDATA[ REALNAME = #realName# ]]></isNotEmpty>
					<isNotEmpty property="password" prepend=","><![CDATA[ PASSWORD = #password# ]]></isNotEmpty>
					<isNotEmpty property="projectId" prepend=","><![CDATA[ PROJECT_ID = #projectId# ]]></isNotEmpty>
					<isNotEmpty property="isEable" prepend=","><![CDATA[ ISENABLE = #isEable# ]]></isNotEmpty>
					<isNotEmpty property="createTime" prepend=","><![CDATA[ CREATETIME = #createTime# ]]></isNotEmpty>
					<isNotEmpty property="name" prepend=","><![CDATA[ USERNAME = #name# ]]></isNotEmpty>
					<isNotEmpty property="id" prepend=","><![CDATA[ USERID = #id# ]]></isNotEmpty>
					<isNotEmpty property="isFirstLogin" prepend=","><![CDATA[ ISFIRSTLOGIN = #isFirstLogin# ]]></isNotEmpty>
		</dynamic>
		<dynamic prepend="WHERE">
			USERID = #id#
		</dynamic>
	</update>

© 著作权归作者所有

蘑菇头老大
粉丝 2
博文 20
码字总数 7628
作品 0
杭州
私信 提问
加载中

评论(1)

i
itxx2016
推荐国内最流行的ibatis代码生成网站 --- fwjava.com
无需任何安装配置,直接在线生成,且十分规范好用.
现在,很多知名的互联网公司都在用它.
Spring整合Ibatis之SqlMapClientDaoSupport

Spring通过DAO模式,提供了对iBATIS的良好支持。SqlMapClient对象是iBATIS中的主要对象,我们可以通过配置让spring来管理SqlMapClient对象的创建,继而整合iBatis和Spring。 与hibernate类似...

Gillian_Male
2012/08/03
457
1
【转】我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)

我在最初的选型的时候是打算选择 Hibernate 的,在研究的过程中发现了 iBatis,经过 分析比较之后我选择了 iBatis。现在我已经使用 iBatis 完成了一个中小型的项目。这个 项目在性能、可维护...

mj4738
2012/02/18
240
3
深入分析 iBATIS 框架之系统架构与映射原理

简介: iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 ...

老盖
2010/11/11
2.2K
3
[IBM DW] 深入分析 iBATIS 框架之系统架构与映射原理

简介: iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 ...

红薯
2010/11/13
1K
2
iBatis SqlMap的配备总结

iBatis SqlMap的配置总结 核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素...

mjZhang
2014/04/30
225
1

没有更多内容

加载失败,请刷新页面

加载更多

编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
18分钟前
2
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
34分钟前
59
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
今天
5
0
Spring Security 实战干货:必须掌握的一些内置 Filter

1. 前言 上一文我们使用 Spring Security 实现了各种登录聚合的场面。其中我们是通过在 UsernamePasswordAuthenticationFilter 之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在...

码农小胖哥
今天
8
0
常见分布式事务解决方案

1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源...

asdf08442a
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部