概述
mybatis可以使用useGeneratedKeys来自动生成id(其他数字的值也一样可以):
<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的自增长。
如果数据库中没有设置自增长可以用下面代码:
<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:
<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 useGeneratedKeys所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复