`
mmBlue
  • 浏览: 164900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis中动态SQL_update

阅读更多

如何知道上一篇的动态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 楼 jzzwy 2011-10-21  
不过还是蛮精彩的 学习了很多
1 楼 jzzwy 2011-10-21  
UPDATE MYIVR_TUSER  
    <dynamic prepend="SET "> 
                <isNotEmpty property="realName" prepend=","><![CDATA[ REALNAME = #realName# ]]></isNotEmpty> 

这地方写的有问题 ,别让菜鸟我陷入泥潭哦

UPDATE MYIVR_TUSER   set ,realName显然不对哦

相关推荐

    iBatis SQL Maps开发指南.pdf

    开发指南 iBATIS SQL Maps Page 3 of 62 Map类型的Result 复杂类型属性(即自定义类型的属性) 避免N+1 Select(1:1) 延迟加载 VS 联合查询(1:1) 复杂类型集合的属性 避免N+1 Select(1:M和M:N) 组合键值或多...

    J2EE核心:iBatis_DAO入门与进阶.doc

    比如考虑在iBatis: SQL Maps中的应用例子。这是一个Struts应用允许对一个关系表执行SELECT, INSERT, UPDATE和DELETE的SQL请求。在这个应用中,使用SQL Maps做持续性框架。现在我们要修改这个应用,将这个关系表储存...

    在java控制台提取sql语句

    在java的控制台中看到的sql日志通常是如下的样子, Preparing: SELECT in (0,1) ORDER BY i.UPDATE_DATE_TIME DESC 2019-01-18 10:12:52,566 [DEBUG](org.apache.ibatis.logging.log4j.Log4jImpl.debug(Log4jImpl....

    ibatis 开发指南(pdf)

    使用ibatis 提供的ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的Java 对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求...

    为 Ibatis 2.3.4 构建增强的 Apache Ibator 实体类生成工具

    Ibator seeks to make a major impact on the large percentage of database operations that are simple CRUD (Create, Retrieve, Update, Delete). You will still need to hand code SQL and objects for custom...

    ibatis 缓存配置策略

    • Cache的key由haskcode、checksum、查询参数、sqlmap Id、sql语句、调用方法名等构成。由此可以看出,不同的参数会有不同的Key。注意,他不是以查询参数的Class的hashcode或 toString方法作为key的一部分,而是以...

    IBatisNet的Codesmith模板

    generates IBatisNet SQL mapping file and a group of CSharp classes from a database table. ...SqlMap, the IBatis.NET SQL mapping file that contains SQL statements used in the DaoImpl above.

    自动创建SqlServer对应的实体和基本sql

    当不用持久层框架(ibatis,hibernate等)的时候,使用单纯的jdbc操作的时候,创建实体类,写基本的insert和update很烦人。还容易错。中午用午睡时间赶紧弄了个工具。使用起来很简单,只需要给数据库连接串和表名字就...

    iBATIS 帮助文档

    SQL Maps (com.ibatis.sqlmap.*)......................................................................................................5 SQL Map的概念........................................................

    前端-后端java的Util类的工具类

    │ │ dynamic-sql.html │ │ findbugs.html │ │ getting-started.html │ │ index.html │ │ integration.html │ │ issue-tracking.html │ │ java-api.html │ │ jdepend-report.html │ │ license.html...

    AppFramework_V1.0_New

    最明显的就是类似于LAST_UPDATE_TIME了,通常为了保证这个字段的一致性,通常在插入新记录时采用当前数据库时间作为字段值。但IBatisNet接收的实体类对象属性都是普通C#类型,并不具备传入表达式的能力。如果采用...

    AppFramework_V1.0

    最明显的就是类似于LAST_UPDATE_TIME了,通常为了保证这个字段的一致性,通常在插入新记录时采用当前数据库时间作为字段值。但IBatisNet接收的实体类对象属性都是普通C#类型,并不具备传入表达式的能力。如果采用...

    Java数据库技术详解 DOC简版

    3.6 UPDATE语句 3.7 DELETE语句 3.8 本章小结 第4章 PL/SQL 4.1 PL/SQL简介 4.2 PL/SQL基础 4.3 本章小结 第二篇 JDBC篇 第5章 JDBC技术基础 5.1 JDBC概述 5.2 JDBC API 5.3 JDBC操作数据库 ...

    MyBatis-Generate

    MBG seeks to make a major impact on the large percentage of database operations that are simple CRUD (Create, Retrieve, Update, Delete). You will still need to hand code SQL and objects for join ...

    MyBatis Generator 自动成成文件项目源码

    内含mysql 和 oracle 理论上sqlserver也是可以使用的,笔者亲测,非常好用,不会生成多余代码,求点赞 使用方法:右键mybatis-generator-mysql.xml 或者mybatis-generator.xml文件 分别对应mysql和oracle Generator ...

    AppFramework数据库访问组件_代码生成插件_V1.1.rar

    最明显的就是类似于LAST_UPDATE_TIME了,通常为了保证这个字段的一致性,通常在插入新记录时采用当前数据库时间作为字段值。但IBatisNet接收的实体类对象属性都是普通C#类型,并不具备传入表达式的能力。如果采用...

    springmybatis

    mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:...

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.4.3. SqlUpdate类 11.4.4. StoredProcedure类 11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring的application context中创建 SessionFactory ...

    轻:从MyBatisiBatis生成GoGolang数据库sql查询代码,精神

    光 light是一种用于从go源文件中生成数据库查询代码的工具,该工具具有使用SQL和Variables注释的接口方法。 Interface methods commented with SQL and variables =&gt; go generate =&gt; Database query code ...

    java的轻量级orm工具包jdao.zip

     如果你觉得hibernate,ibatis等orm框架过于笨重,不烦试下jdao,它可以在团队开发中规范团队持久层代码,较少开发量,特别在单表操作上基本是对象操作,对于复杂SQL查询也有较好的封装。一、使用DAO方式操作数据:...

Global site tag (gtag.js) - Google Analytics