文档章节

mybatis insert into mysql with auto_increment key

vvx1024
 vvx1024
发布于 2015/07/18 10:42
字数 261
阅读 281
收藏 4

mybatis版本 : 3.2.8

其实很简单,之前想复杂了。。。

mybatis插入自增id的记录后,传入的POJO会自动更新id的值为插入后的结果

(目前只测了id,其他字段如果不给定值,不知是否更新,有待测试)

记录如下:

User.xml

<insert id="create" parameterType="User" useGeneratedKeys="true" keyProperty="id">
   INSERT INTO t_user(<include refid="all_property"/>)
   VALUES (#{createTime}, #{mobile}, #{email},#{QQ})
</insert>

IUserMapper.java 

void create(User user);

Test 代码

@Test
   public void testCreate() {

      SqlSession session = DBUtil.getSqlSession();

      IUserMapper userMapper = session.getMapper(IUserMapper.class);

      User user = userMapper.find("18910000012");

//    user.setId(0L);
      user.setMobile("18900121033");

      userMapper.create(user);

      System.out.println(user.getId());

      session.commit();

      DBUtil.close(session);
   }

结果(返回的 ID):15

其他情况如何获取id还有待实验,这种传入pojo的方式很简单,不需要 <selectKey />(我也没通过这个标签得到过id)


© 著作权归作者所有

vvx1024
粉丝 4
博文 50
码字总数 19033
作品 0
海淀
程序员
私信 提问
mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的...

飞翼
2016/12/28
27
0
JDBC insert后得到主键的方式

使用JDBC,或者通过hibernate,mybatis等orm框架,执行insert语句,要怎么得到新生成记录的主键呢? 大体有两种方式,1. 在执行insert前,生成主键,那么主键和普通的列就没有区别,2. 执行i...

BlueWoods
2015/07/24
0
0
mybatis学习笔记(9)-订单商品数据模型分析

mybatis学习笔记(9)-订单商品数据模型分析 标签: mybatis [TOC] 本文对接下来几篇博客中用到的数据模型进行分析,并附上建表sql文件和测试数据文件 数据模型分析思路 每张表记录的数据内容 ...

brianway
2016/03/01
61
0
auto_increment的基本特性

MySQL的中AUTOINCREMENT类型的属性用于为一个表中记录自动生成ID功能,可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。 在数据库应用,我们经常要用到唯一编号,以标识记录。在...

真爱2015
2015/12/09
19
0
MySQL把数据删除后id从1开始

用法: CREATE TABLE test ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(15) NOT NULL ) AUTO_INCREMENT = 100; 在数据库应用,我们经常要用到唯一编号,以标识......

netmouse
2016/02/03
121
0

没有更多内容

加载失败,请刷新页面

加载更多

“旧城改造”的背后——银泰新零售阿里云解决方案(上)

相关免费课程《银泰新零售上云解决方案精讲》上线中 立足实战 讲透经典案例 助你快速理解新零售 第一节学习地址 第二节学习地址 传统线下商业体上云的案例 与其说银泰上云,倒不如说银泰“旧...

阿里云官方博客
26分钟前
2
0
记一次升级Oracle驱动引发的死锁

问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下: Found one Java-level deadlock:...

ksfzhaohui
28分钟前
13
0
MySQL 中的 information_schema 数据库

欢迎查看原文 - 本博客仅记录 https://blog.csdn.net/kikajack/article/details/80065753 -- 是否开启bin_log日志: off为关闭-- show variables like 'log_%'; show variables like '......

莫库什勒
36分钟前
1
0
Random在高并发下的缺陷以及JUC对其的优化

Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了。但并不是每个人都知道...

编程SHA
40分钟前
2
0
T5大牛带你解析:如何实现分布式技术

1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓...

李红欧巴
52分钟前
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部