PostgreSQL使用MyBatis,insert时返回主键
2017-07-19 10:09
639 查看
MyBatis中普通的insert语句是这样的:
<insert id="insert" parameterType="com.xxx.xxx.xxDo"> insert into "table_name" (key, value) values (#{key,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}) </insert>
此时Dao接口的public Integer insert(DatabaseObject do);返回的Integer是收到改动的行数,插入成功时返回1
主键默认是由数据库自己加入的,可以使用selectKey的子查询语句获得
但PostgreSQL为serial字段生成的sequence名字为: 表名_列名_seq,但是这个序列并不能单独访问
所以这个方法需要进行一些修改,这里还是使用最简便的方式:
给insert语句添加useGeneratedKeys="true" keyProperty="id"
<insert id="insert" parameterType="com.xxx.xxx.xxDo" useGeneratedKeys="true" keyProperty="id"> insert into "table_name" (key, value) values (#{key,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}) </insert>
useGeneratedKeys让MyBatis来分配主键id,keyProperty用于在主键名不是id时指定主键名
此时MyBatis会将分配的主键加入insert的传参do中,通过do自带的getId就可以返回主键了
在server层中使用
public Integer insert(DatabaseObject xxDo){ if(MyBatisDao.insert(xxDo) > 0){ return xxDo.getId(); } else{ return 0; } }
相关文章推荐
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- mybatis使用注解往postgresql数据库表insert数据[主键自增]的写法
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- mybatis+postgresql+insert返回主键,action,service侧
- mybatis 获取insert返回的主键
- MyBatis insert操作返回主键
- mybatis oracle insert 返回新增的主键值
- 在基于Mybatis持久层框架,使用数据库事务时,插入一条数据后,无法返回主键ID的问题研究
- Mybatis Insert 返回主键
- MyBatis在insert插入操作时返回主键ID的配置
- Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)
- MyBatis insert操作返回主键
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- MyBatis insert操作返回主键
- MyBatis insert 返回主键的方法(oracle和mysql)
- mybatis学习之路----insert主键返回 selectKey使用
- 使用mybatis,在添加数据的时候返回主键,当查询count和属性字段怎么接收返回数据
- Mybatis中insert中返回主键ID的方法
- MyBatis :Insert (返回主键、批量插入)
- Mybatis3.3.x技术内幕(十五):Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)