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

ibatis中动态SQL_insert

阅读更多

ibatis的动态SQL非常强大,记录一些细节的东西。

1.正常的动态INSERT,即全部遍历一次,这种是通用的,如下:

	<insert id="addUser" parameterClass="com.mmblue.domain.User">
		INSERT INTO USER (
		<dynamic prepend=" ">
					<isNotEmpty property="realName" prepend=",">REALNAME</isNotEmpty>
					<isNotEmpty property="password" prepend=",">PASSWORD</isNotEmpty>
					<isNotEmpty property="projectId" prepend=",">PROJECT_ID</isNotEmpty>
					<isNotEmpty property="isEable" prepend=",">ISENABLE</isNotEmpty>
					<isNotEmpty property="createTime" prepend=",">CREATETIME</isNotEmpty>
					<isNotEmpty property="name" prepend=",">USERNAME</isNotEmpty>
					<isNotEmpty property="id" prepend=",">USERID</isNotEmpty>
					<isNotEmpty property="isFirstLogin" prepend=",">ISFIRSTLOGIN</isNotEmpty>
		</dynamic>
		<![CDATA[
			) VALUES (
		]]>
		<dynamic prepend=" ">
					<isNotEmpty property="realName" prepend=",">#realName#</isNotEmpty>
					<isNotEmpty property="password" prepend=",">#password#</isNotEmpty>
					<isNotEmpty property="projectId" prepend=",">#projectId#</isNotEmpty>
					<isNotEmpty property="isEable" prepend=",">#isEable#</isNotEmpty>
					<isNotEmpty property="createTime" prepend=",">#createTime#</isNotEmpty>
					<isNotEmpty property="name" prepend=",">#name#</isNotEmpty>
					<isNotEmpty property="id" prepend=",">#id#</isNotEmpty>
					<isNotEmpty property="isFirstLogin" prepend=",">#isFirstLogin#</isNotEmpty>
		</dynamic>
		<![CDATA[
	    	)
	    ]]>
	</insert>

 2.有的字段必须插入,不是采用这种全部判断的方式

	<insert id="addUser" parameterClass="com.mmblue.entity.system.User">
		<selectKey keyProperty="id" resultClass="long">
             select S_MYIVR_TUSER.NEXTVAL as id from DUAL
         </selectKey>
         INSERT INTO MYIVR_TUSER (
         	USERID
			<isNotEmpty property="name">,USERNAME</isNotEmpty>
			<isNotEmpty property="realName">,REALNAME</isNotEmpty>
			<isNotEmpty property="password">,PASSWORD</isNotEmpty>
			<isEqual property="enable" compareValue="1">,ISENABLE</isEqual>
			<isNotEmpty property="createTime">,CREATETIME</isNotEmpty>
		<![CDATA[
			) VALUES (
		]]>
			#id#
			<isNotEmpty property="name">,#name#</isNotEmpty>
			<isNotEmpty property="realName">,#realName#</isNotEmpty>
			<isNotEmpty property="password">,#password#</isNotEmpty>
			<isEqual property="enable" compareValue="1">,#enable#</isEqual>
			<isNotEmpty property="createTime">,#createTime#</isNotEmpty>
		<![CDATA[
	    	)
	    ]]>
	</insert>

 注意 ,USERNAME 里面的',',和最后一个是不带' ,'  这样的话就算只有1个字段有值都可以插入进去。

如果和第一种方式一样的话就会出现INSERT INTO MYIVR_TUSER(USERID,,USERNAME) values(id,,name)这样的情况

分享到:
评论

相关推荐

    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做持续性框架。现在我们要修改这个应用,将这个关系表储存...

    iBatis-设置缓存模式-Java源码(下载)

    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"&gt; &lt;sqlMap namespace="Account"&gt; &lt;typeAlias alias="Account" type="Account"/&gt; ...

    Ibatis结合MySQL数据库的使用方法Demo

    本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...

    ibatis 开发指南(pdf)

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

    如何处理Spring、Ibatis结合MySQL数据库使用时的事务操作Demo

    本工程以“银行账号转账”为例子...insert into `lm_bank_card`(`id`,`account`,`deposit`) values ('03a2fb24-62f6-4ff7-85ba-74a51351b975','father','10000'),('b5bddc58-4fe2-451a-9bb3-b3a54203c6da','sun','0');

    如何处理Ibatis结合MySQL数据库使用时的事务操作Demo

    本工程以“银行账号转账”为例子...insert into `lm_bank_card`(`id`,`account`,`deposit`) values ('03a2fb24-62f6-4ff7-85ba-74a51351b975','father','10000'),('b5bddc58-4fe2-451a-9bb3-b3a54203c6da','sun','0');

    Spring、Ibatis结合MySQL数据库的使用方法Demo

    本工程用于研究Spring、Ibatis结合MySQL数据库的使用方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char...

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

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

    前端-后端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...

    ibatics 官方网站正确实例

    IBATIS开发包使用实例使用出错 ①插入操作时会报SQL错误,原因如下 com.mydomain.data.Account.xml文件的insert部分ACC_EMIAL的后面没有括号,加上即可解决这个问题。 具体请参考网上的一篇博客:...

    iBATIS 帮助文档

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

    Java数据库技术详解 DOC简版

    3.5 INSERT语句 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...

    AppFramework_V1.0_New

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    AppFramework_V1.0

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    springmybatis

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

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

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

    好用的代码生成源码

    充分利用各种文件的注释 如在.xml中我们可以使用 在.properties文件中我们可以使用 #generator-insert-location 具体请查看template/insert_demo目录的内容 生成器参数配置 通过设置GeneratorProperties.set...

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

    &lt;br&gt;IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...

    Step By Step写测试(书签版).pdf

    5.15 Martini项目下的ibatis文件配置 5.16 数据库测试FAQ 6 Spring和SQL跟踪 6.1 @Tracer 6.2 FAQ 7 JTester插件的使用 7.1 插件功能 7.2 插件安装 7.3 录制变量的功能 7.4 dbFit插件编辑功能 7.5 从数据库中直接拖...

Global site tag (gtag.js) - Google Analytics