mybatis insert

  • 新增数据
<insert id="insert">
insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)
values(#{id},#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg},#{createTime})
</insert>
  • 新增返回主键
<!-- useGeneratedKeys 设置为true之后,mybatis会使用JDBC的getGeneratedKeys 方法取出来由数据库内部生成的主键。
获得到主键后将其赋值给keyProperty配置的id属性。当需要设置多个属性时,使用逗号隔开,这种情况下通常还需要设置
keyColumn属性,按顺序指定数据库的列,这里列的值会和keyProperty配置的属性一一对应。由于要使用数据库返回的主键值,
所以SQL上下两部分的列中去掉了id列和对应的#{id}列 -->直接从对象属性中获取id<insert id="insert2" useGeneratedKeys="true" keyProperty="id">insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)values(#{id},#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg, jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP}
)
</insert>
  • 获取主键
mysql:
<selectKey keyColumn="id" resultType="Long" keyProperty="id" order="AFTER">
select last_insert_id()
</selectKey>oracle:
<selectKey keyColumn="id" resultType="Long" keyProperty="id" order="BEFORE">
select SEQ_ID.nextval from dual
</selectKey>sqlserver:
select scope_identity()<insert id="insert3">
insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)
values(#{id},#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg, jdbcType=BLOB},#{createTime,jdbcType=TIMESTAMP})<selectKey keyColumn="id" resultType="Long" keyProperty="id" order="AFTER">select last_insert_id()</selectKey>
</insert>
  • 注解@Insert
  @Insert({ "insert into sys_role(id,role_name,enabled,create_by,create_time)"
+ "values(#{id},#{roleName},#{enabled},#{createBy},#{createTime})" })
void insert1(SysRole sysRole);
  • 返回自增主键
@Insert({ "insert into sys_role(role_name,enabled,create_by,create_time)"+ "values(#{roleName},#{enabled},#{createBy},#{createTime})" })
@Options(useGeneratedKeys=true,keyProperty="id")void insert2(SysRole sysRole);
  • 返回非自增主键
@Insert({ "insert into sys_role(role_name,enabled,create_by,create_time)"+ "values(#{roleName},#{enabled},#{createBy},#{createTime})" })@SelectKey(statement = "select last_insert_id()",keyProperty = "id",resultType = Long.class,before = false
)
void insert3(SysRole sysRole);

mybatis 的 insert相关推荐

  1. mybatis+postgresql+insert返回主键,action,service侧

    mybatis+postgresql+insert返回主键,action,service侧 在网上找了很久主要的内容如下: <insert id="insertDynaVisitInf ...

  2. Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1

    记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要 ...

  3. 做工作流时候 Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1

    Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要通过xx.getId()方法获取,因为 ...

  4. 诡异!MyBatis的Insert方法一直返回-2147482646?

    作者 | 占小狼的博客 来源 | https://mp.weixin.qq.com/s/iV6BwQkjTXCvfrAwgj2V4w 前几天在做项目demo的时候,发现有一个很奇怪的现象,就是MyBa ...

  5. MyBatis在insert插入操作时返回主键ID的配置

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过Mapper.XML配置的方式来完成这个功能. 在 INSER ...

  6. mybatis postgresql insert后返回自增id

    在使用mybatis + postgresql,我们有时在插入数据时需要返回自增id的值,此时在插入时,可以按照以下例子来编写mapper文件 <insert id="insertUs ...

  7. mybatis 大量insert 出现sql io 异常_Java自学之mybatis:使用注解方式实现CURD

    学习目的:在使用配置文件实现CURD的基础上,学会使用注解方式实现CURD. Part 1 新建一个Mapper,在相应的增删改查的方法上添加相应的注释以及SQL语句.与普通方法相比,就是讲普通方法中 ...

  8. mybatis的insert语句获取自增id的方法(mySQL)

    前提是数据库表里已经把id字段设置成了自增的 javabean的定义是这样的: package test;import java.util.Date;public class Express {pri ...

  9. Mybatis实现insert获取自增id

    先说明我用的是MySQL,其他的没使用过,也帮不上了~~ 首先要先解决思维误区吧,我在搜索了一些资料之后以为写一个这样的xml <insert id="insertNoticeMess ...

最新文章

  1. ELK 性能优化实践
  2. 到底是先更新数据库还是先更新缓存?
  3. HTTP长连接和短连接 + Websocket
  4. iis7.5 php7.0,(原创)win7自带IIS7.5+php7.0.10安装教程(图)
  5. mysql解压版怎么退出_mysql-8.0.15-winx64 解压版安装教程及退出的三种方式
  6. MySQL学习(十五)
  7. 什么是SCRUM敏捷开发
  8. python怎么输入列表元素每个元素占一行_如何对列表的每个元素执行操作并将结果放在Python的新列表中?...
  9. python视频提取关键帧_一种视频关键帧提取算法的制作方法
  10. Java SE 9:不可变Map和Map.Entry的工厂方法
  11. dialog能提交数据吗_硬盘坏了能恢复数据吗?实用硬盘修复软件
  12. java类 (二):内部类
  13. Linux文件系统(七)---系统调用之open操作(二) 之 get_unused_fd
  14. c语言中引用sqrt需要cmath嘛,c语言根号(c语言中根号怎么输入)
  15. 计算机网络ip地址计算广播地址,ip地址计算与子网划分的方法讲解
  16. JUC并发编程基石AQS源码之结构篇-ReentrantLock
  17. 人事部门用计算机管理人事档案,计算机在人事管理中的运用分析
  18. [OpenGL] 视图矩阵(View)矩阵与glm::lookAt函数源码解析
  19. 智慧农业SaaS系统
  20. 计算机无法连接打印机主机,电脑主机连不上网络打印机

热门文章

  1. linux集群 disf,测试方法---SFDIPOT
  2. java gif 帧_修复Java中动画gif的帧频
  3. 违禁词过滤器 DFA算法升级版
  4. PostgreSQL Java 开发者手册
  5. python获取字典长度_Python中的字典
  6. django项目 html报表和excel报表写入并通过邮件发送到outlook和QQ邮箱
  7. 高考失利只能进清华,35岁成阿里最年轻技术副总裁,他来自另一个平行世界!...
  8. BERT微调做中文文本分类
  9. Visual Basic开发实战1200例(第Ⅱ卷)pdf
  10. 小码农也有大梦想!javaweb编程技术微课版答案