MyBatis学习之获取主键策略
来源:互联网 发布:windows运行lua脚本 编辑:程序博客网 时间:2024/06/05 02:54
数据库主键一般使用int自增长或者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());
阅读全文
0 0
- MyBatis学习之获取主键策略
- Mybatis实战 之 获取主键
- mybatis 主键生成策略
- MyBatis之自增长主键值获取
- Hibernate学习之主键生成策略
- 老司机学习MyBatis教程之MyBatis基础篇之如何获取自增主键的值(MySQL)
- mybatis insert获取主键
- mybatis selectkey获取主键
- Hibernate之主键策略
- MyBatis基础篇之如何获取Oracle主键的值
- mybatis之主键返回
- MyBatis之主键返回
- Hibernate学习笔记之主键生成策略和SchemaExport
- mybatis获取插入数据主键
- mybatis获取自增主键
- MyBatis插入并获取主键
- mybatis的自定义主键生成策略
- Hibernate-主键映射之主键生成策略
- Android解析WindowManager(三)Window的添加过程
- 从hbase表1中读取数据,最终结果写入到hbase表2 ,如何通过MapReduce实现 ?
- 处理struts2框架国际化资源文件问题(使用native2ascii工具)
- 数据库中的范式
- hbase与hive集成
- MyBatis学习之获取主键策略
- 软考助手V3.5发布喽
- Jquery+ajax+springMVC返回json的运用方法
- hbase与sqoop集成
- 访问权限控制
- qt环境的搭建
- 排序----4种排序
- IO流实战1
- HDU 6215 Brute Force Sorting(伪双向链表删边)