MyBatis学习之获取主键策略
2017-09-19 00:41
549 查看
数据库主键一般使用int自增长或者uuid,如果我们需要在插入数据之后获取主键的值那该怎么做呢?
自增长
UUID
两种的区别就在于获取的方式不一样,自增长使用的是last_insert_id()函数,而UUID使用的uuid;另外自增长是在插入成功后才有增长的值,而由于UUID本身是不可能重复的因此可以在插入之前就可以获取到。
自增长
<!--添加用户 注意参数的名称与对象属性一致 --> <insert id="insertUser" parameterType="com.xanthuim.pojo.User"> <!-- selectKey标签实现主键返回 keyColumn主键对应的哪一列 keyProperty主键对应的POJO的哪一个属性 order是在执行insert语句之前查询id的值,还是在之后执行。需要注意的是mysql是在插入成功后生成id的,因此需要把order的值设置为AFTER --> <selectKey keyProperty="id" resultType="Integer" order="AFTER"> /*查询执行完插入操作返回最新的id*/ SELECT last_insert_id() </selectKey> INSERT INTO user(username, sex, birthday, address) VALUES(#{username}, #{sex}, #{birthday}, #{address}) </insert>
UUID
<insert id="insertUserByUUID" parameterType="com.xanthuim.pojo.Info"> <!-- SELECT uuid() 是mysql获取uuid的函数。 需要注意的是这里的order值是BEFORE,因为在插入数据的时候需要把UUID设置给主键 --> <selectKey keyProperty="id" resultType="String" order="BEFORE"> SELECT uuid() </selectKey> /*id的值从SELECT uuid()得来*/ INSERT INTO info(id, iname) VALUES (#{id}, #{iname}) </insert>
两种的区别就在于获取的方式不一样,自增长使用的是last_insert_id()函数,而UUID使用的uuid;另外自增长是在插入成功后才有增长的值,而由于UUID本身是不可能重复的因此可以在插入之前就可以获取到。
插入数据,获取当前插入数据的主键
User user = new User(); user.setUsername("xanthuim"); user.setSex("未知"); user.setAddress("无可奉告"); user.setBirthday(new Date()); sqlSession.insert("insertUser", user); //在插入成功后就可以获取到主键值了 System.out.println(user.getId());
相关文章推荐
- 老司机学习MyBatis教程之MyBatis基础篇之如何获取自增主键的值(MySQL)
- mybatis在oracle数据库中获取主键
- myBatis学习——SqlSession对象获取的封装工具类
- 原生JDBC ,MyBatis 使用 insert 获取主键值对比(MySQL)
- Hibernate的学习之路九(主键的生成策略)
- Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1
- Mybatis获取自增主键值
- MyBatis获取数据库自生成的主键Id
- MyBatis插入时候获取自增主键方法
- 【JavaEE学习笔记】Hibernate_04_ORM,Hibernate,主键策略,uuid
- mybatis插入一个对象后获取表中自增的主键Id并且传入到插入的的对象中,方便将对象中其他属性赋值给其他以前表主键Id作为非空字段的表
- MyBatis插入时候获取自增主键方法
- Mybatis添加功能时获取mysql自增主键和非自增主键的返回值
- Hibernate的学习之路九(主键的生成策略)
- MyBatis 3.2.6插入时候获取自增主键方法有二
- MyBatis_获取自动增长主键
- JPA学习笔记(4)——使用Table策略来生成主键
- 框架学习系列 mybatis 第七篇 mybatis入门程序之插入数据库后返回主键
- MyBatis插入时获取自增主键方法
- mybatis学习笔记 一对一 和一对多 以及 如何通过框架直接返回主键id