我是靠谱客的博主 无情酒窝,这篇文章主要介绍MyBatis自动生成id useGeneratedKeys,现在分享给大家,希望可以做个参考。

mybatis可以使用useGeneratedKeys来自动生成id(其他数字的值也一样可以):

复制代码
1
2
3
4
5
<insert id="save" parameterType="UserAlias" useGeneratedKeys="true" keyProperty="id"> INSERT INTO userinfo(username,age) VALUES (#{username}, #{age}) </insert>

上面的代码是针对mysql,在数据库中设置了id自增长的示例。

keyProperty这里指定自动增长的字段,我这里是id。所以下边的insert中可以不写id字段,前提是数据库中一定要设置好id的自增长。

如果数据库中没有设置自增长可以用下面代码:

复制代码
1
2
3
4
5
6
7
8
<insert id="save" parameterType="UserAlias" useGeneratedKeys="true" keyProperty="id"> <selectKey keyProperty="id" resultType="long" order="BEFORE"> SELECT if(max(id) is null,1,MAX(id) + 1 ) as id from userinfo </selectKey> INSERT INTO userinfo(id,username,age) VALUES (#{id}, #{username}, #{age}) </insert>

这时候的insert语句就要写上id字段喽。

如果是Oracle这种没有自增长功能的数据库可以用上边的方式,也可以用sequence。如建了一个user_id_sequence:

复制代码
1
2
3
4
5
6
7
8
<insert id="save" parameterType="UserAlias" useGeneratedKeys="true" keyProperty="id"> <selectKey keyProperty="id" resultType="long" order="BEFORE"> SELECT user_id_sequence.nextval from dual </selectKey> INSERT INTO userinfo(id,username,age) VALUES (#{id}, #{username}, #{age}) </insert>

这里Oracle的我没有测试,只是给出参考。

最后

以上就是无情酒窝最近收集整理的关于MyBatis自动生成id useGeneratedKeys的全部内容,更多相关MyBatis自动生成id内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部