MyBatis insert操作返回主键
2014-09-09 20:54
405 查看
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:
或
在插入操作完成之后,参数category的id属性就已经被赋值了
配置如上,执行完新增操作后,代码中的实体就自动有了主键数据。
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
<insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> select seq_test.nextval from dual </selectKey> insert into category ( id, name_zh, parent_id, show_order, delete_status, description) values ( #{id,jdbcType=SMALLINT}, #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=SMALLINT}, #{showOrder,jdbcType=SMALLINT}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR}) </insert>
针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:
<insert id="add" parameterType="vo.Category" useGeneratedKeys="true" keyProperty="id"> insert into category ( name_zh, parent_id, show_order, delete_status, description ) values ( #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=SMALLINT}, #{showOrder,jdbcType=SMALLINT}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR} ) </insert>
或
<insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id"> select last_insert_id() as id </selectKey> insert into category ( name_zh, parent_id, show_order, delete_status, description ) values ( #{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=SMALLINT}, #{showOrder,jdbcType=SMALLINT}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR} ) </insert>
在插入操作完成之后,参数category的id属性就已经被赋值了
配置如上,执行完新增操作后,代码中的实体就自动有了主键数据。
相关文章推荐
- MyBatis返回主键,MyBatis Insert操作返回主键
- MyBatis insert操作返回主键
- MyBatis在insert插入操作时返回主键ID的配置
- MyBatis:Insert操作详解(返回主键、批量插入)
- MyBatis学习 之 六、insert操作返回主键
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- 160613、MyBatis insert操作返回主键
- MyBatis中insert操作返回主键的实现方法
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- MyBatis:Insert操作详解(返回主键、批量插入)
- Mybatis中insert、Update操作返回主键
- MyBatis在insert插入操作时返回主键ID的配置
- MyBatis insert操作返回主键
- MyBatis在insert插入操作时返回主键ID的配置
- MyBatis insert操作返回主键
- MyBatis insert操作返回主键
- MyBatis insert操作返回主键
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- MyBatis insert操作返回主键