Mybatis 中的insertOrUpdate操作
下面一段代码给大家介绍了Mybatis 中的insertOrUpdate操作,具体代码如下所示:
<insert id="insertOrUpdate"> insert into base_person (pname, idcard, gender, nation, source_flag, create_time) values <foreach collection="list" item="p" index="index" separator=","> (#{p.pname}, #{p.idcard}, #{p.gender}, #{p.nation}, #{p.sourceFlag}, #{p.createTime}) </foreach> ON DUPLICATE KEY UPDATE pname=values(pname), idcard=values(idcard), gender=values(gender), nation=values(nation) </insert>
以上所述是小编给大家介绍的Mybatis 中的insertOrUpdate操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
最近做项目遇到一个挺纠结的问题,由于业务的关系,DB的数据表无法确定,在使用过程中字段可能会增加,这样在insert时给我造成了很大的困扰. 先来看一下最终我是怎么实现的: <insert id="batchInsertLine" parameterType="HashMap"> <![CDATA[ INSERT INTO tg_fcst_lines(${lineColumn}) select result.*,sq_fcst_lines.next
-
MyBatis中insert操作返回主键的实现方法
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.DB2,可以采用如下配置方式: <insert id="add" parameterType="vo.Category"> <selectKey resultType="
-
MyBatis在insert插入操作时返回主键ID的配置(推荐)
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id="insert" parameterType="com.test.User&qu
-
mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题
创建用户: /** * 创建一个或多个新用户 insert 字段和表名不确定时动态添加 */ @Test public void createAccount() { String lineColumn = ""; Map<String, Object> paramsMap = new HashMap<String, Object>(); Map<String, Object> dataMap = new HashMap<String, Obje
-
Oracle+Mybatis的foreach insert批量插入报错的快速解决办法
最近做一个批量导入的需求,将多条记录批量插入数据库中. 解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis,所以打算使用MyBatis的foreach功能进行批量插入.期间遇到了"SQL 命令未正确结束 "的错误,最终解决,记录下来供以后查阅和学习. 首先,在网上参考了有关Mybatis的foreach insert的资料,具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach
-
MyBatis批量插入(insert)数据操作
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来. 实体类TrainRecord结构如下: public class TrainRecord implements Serializable { private static final long serialVersionUID = -12069604621179
-
Mybatis 中的insertOrUpdate操作
下面一段代码给大家介绍了Mybatis 中的insertOrUpdate操作,具体代码如下所示: <insert id="insertOrUpdate"> insert into base_person (pname, idcard, gender, nation, source_flag, create_time) values <foreach collection="list" item="p" index="i
-
Mybatis中的resultType和resultMap查询操作实例详解
resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比如:列名和对象属性名不一致时可以使用resultMap来配置:还有查询的对象中包含其他的对象等. MyBatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configura
-
在mybatis中去除多余的前缀或者后缀操作
A.where 标签会自动删除第一个多余的and或者or,set标签会自动删除最后一个',' B.trim标记,是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND
-
Mybatis中多个对象包含同一个对象的处理操作
多个对象对应一个对象时,应该如何进行查询? 例如 关键字:association : 联系 ,关联 多个人可以关联一个人. 首先做一些准备,如:实体类,工具类和Mybatis核心文件 实体类: //老师实体类 package com.MLXH.pojo; public class Teacher { private int id; private String name; public Teacher() { } public Teacher(int id, String name) { thi
-
Mybatis如何实现InsertOrUpdate功能
目录 实现InsertOrUpdate功能 需求 实现 Mybatis学习笔记:InsertOrUpdate 环境 前言 Dao Mapper XML文件 行别名 主键和唯一索引 实现InsertOrUpdate功能 需求 最近在项目开发中遇到这样一个需求:每天需要对相同的数据(也有可能是不同的)进行两次入库操作,数据不存在便insert,存在则update.于是就用到了Mybatis的InsertOrUpdate功能. 实现 每次操作数据库之前,先根据id查询有没有记录,有则进行update操
-
Mybatis中通过generator生成mapper、Dao、mapper.xml的方法
1.将如下东西复制到项目中,或某一个文件夹. 2.更改generator.xml (1)更改数据驱动包的位置,选择你所安装的目录: (2)更改你所要连接的数据库的名称,数据库的user和password (3)更改下图 targetPakage的地方,targetProject的地方,这里targetProject所在的地方一定要存在 要不然会报错 (4)在tableName中填写你所要填写的表名.domainObjectName填写你想要生成的名字. 3.进入命令行窗口运行: 1.进入项目 的
-
MyBatis中#号与美元符号的区别
#{变量名}可以进行预编译.类型匹配等操作,#{变量名}会转化为jdbc的类型. select * from tablename where id = #{id} 假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的就是'12',如果id为整型,那么id就是12,并且MyBatis会将上面SQL语句转化为jdbc的select * from tablename where id=?,把?参数设置为id的值. ${变量名}不进行数据类型匹配,直接替换. select * fro
-
mybatis中批量插入的两种方式(高效插入)
MyBatis简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 一.mybiats foreach标签 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主
随机推荐
- FCKeditor 图片上传进度条不动的解决方法
- asp 正则表达式检测http开头的函数
- Kotlin 基础教程之异常
- 一份老外写的XMLHttpRequest代码多浏览器支持兼容性
- JavaScript中length属性的使用方法
- PHP实现文件上传和多文件上传
- python输出当前目录下index.html文件路径的方法
- C#后台接受前台JSON字符串装换成字典集合处理
- Android编程中Perferences的用法实例分析
- JavaScript中prototype为对象添加属性的误区介绍
- 实例详解Linxu中df命令
- 去除链接元素的虚线框 兼容IE7、IE6、FF
- 详解javascript的变量与标识符
- JS如何判断移动端访问设备并解析对应CSS
- Java注册邮箱激活验证实现代码
- Nginx Location 指令简明指南
- 实现lightBox时的样式与行为分离减少JS第1/2页
- 解析android中的dip,dp,px,sp和屏幕密度
- C语言对堆排序一个算法思路和实现代码
- Python通过Django实现用户注册和邮箱验证功能代码