mybatis+postgresql返回递增主键的正确姿势及勘误
来源:互联网 发布:excel设置数据标签 编辑:程序博客网 时间:2024/05/16 05:04
前言
某日需要更换成为postgresql,于是,mybatis返回递增主键便是一个问题。
网上做法
<selectKey keyProperty="id" resultType="java.lang.Long" order="BEFORE"> SELECT nextval('serial_project_id') </selectKey>```
这段代码便是返回递增主键的值了,
那么我们看看实际插入记录以后的主键发布:
于是看到了生成的主键竟然不连续,问题到底出在哪里了?
让我们看看nextval这些函数的意义:
nextval('sequence_name'): 将当前值设置成递增后的值,并返回currval('sequence_name'): 返回当前值setval('sequence_name', n, b=true): 设置当前值;b 默认设置 true,下一次调用 nextval() 时,直接返回 n,如果设置 false,则返回 n+increment:
很明显我们调用nextval的时候已经改变了值,然后插入时候又会改一次。
解决方案
很简单:
<selectKey keyProperty="id" resultType="java.lang.Long" order="BEFORE"> SELECT nextval('serial_project_id') </selectKey>
改成:
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER"> SELECT currval('serial_project_id') </selectKey>
阅读全文
0 0
- mybatis+postgresql返回递增主键的正确姿势及勘误
- mybatis 主键的返回
- mybatis主键的返回
- MyBatis中主键增长方式的设定及返回
- mybatis+postgresql+insert返回主键,action,service侧
- mybatis如何实现mysql数据库的主键返回主键返回
- FormView,DetailView 返回递增主键
- MyBatis insert 返回主键的方法
- MyBatis insert 返回主键的方法
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis返回插入的数据主键
- MyBatis+MySQL 返回插入的主键ID
- MyBatis insert 返回主键的方法
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- 浏览器默认样式的一些看法(User Agent Stylesheet)
- Java学习之反射
- MQTT协议学习及实践
- 关于python sklearn库在windows平台下的一些问题
- js 错误问题
- mybatis+postgresql返回递增主键的正确姿势及勘误
- Apache Kafka 介绍
- Python 列表(List)操作方法详解
- 移动应用的一般测试流程和需要注意的测试项
- 【java集合】HashMap常见面试题
- SpringMVC 使用JSR-303进行校验 @Valid
- “函数”一词的来历
- POJ 1423 Big Number 笔记
- 关于 java swing 使用按钮关闭窗口