Postgresql 创建SEQUENCE,Springboot中使用KeyHolder
2024-10-13 16:57:36
项目中使用到JdbcTemplate中的KeyHolder,代码如下:
String sql = "insert into web_users(username, password, phone, company) values(?,?,?,?)";
KeyHolder keyHolder = new GeneratedKeyHolder();
getJdbcTemplate().update(
con -> {
PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getPhone());
ps.setString(4, user.getCompany());
return ps;
}, keyHolder);
int userid = (int) keyHolder.getKeys().get("id");
return userid;
当执行到这段代码的时候会报错
org.postgresql.util.PSQLException: ERROR: null value in column "id" violates not-null constraint
考虑到应该是id字段默认值有问题,应该设置为 nextval('demo_users_seq'::regclass) ,
需要创建
SEQUENCE
CREATE SEQUENCE web_users_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1;
设置完毕之后再次尝试,可以成功插入值。
最新文章
- <;JavaScript语言精粹>;--<;读书笔记三>;之replace()与正则
- Http协议相关内容
- 关于MySQL存储过程中遇到的一个错误
- bzoj1266最短路+最小割
- “CEPH浅析”系列之八——小结
- OpenCV成长之路(3):模仿PhotoShop中魔术棒工具
- 33 网络相关函数(一)——live555源码阅读(四)网络
- MinGW平台 openjpeg-2.1.0 静态编译后未定义引用的解决方法
- Adaboost算法结合Haar-like特征
- 如何在Ubuntu/CentOS上安装Linux内核4.0
- Zookeeper 4、Zookeeper开发
- linux之awk
- SQL Server 开发利器 SQL Prompt 6.5 T-SQL智能感知分析器 下载地址 完全破解+使用教程
- [ios] 微信订阅号: ios博文精选
- leetcode — maximum-depth-of-binary-tree
- work2:贪吃蛇
- vue项目中跳转到外部链接方法
- Python Tornado搭建高并发Restful API接口服务
- C++ 计算直线的交点数(动态规划)
- mysql 5.7.12 winx64安装配置方法图文教程
热门文章
- Python之旅_第一章Python入门
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)
- redis入门(04)redis的数据类型
- linux下的Shell编程(8)自定义函数
- 九、Python+Selenium模拟用QQ登陆腾讯课堂,并提取报名课程(练习)
- C#微信公众号——自定义菜单
- leetcode算法:Island Perimeter
- Django REST framework+Vue 打造生鲜超市(四)
- Python_fullstack_test1
- vscode设置出错, 无法自动补全