mybatis-generator 自增长ID 的获取

来源:互联网 发布:辽宁都市频道网络直播 编辑:程序博客网 时间:2024/05/16 12:42

环境:Stringmvc + Mybatis


需求:插入时获取数据库自增长的id


方法一,插入其他字段数据,然后,根据其他字段select id。显然,需要insert 和select操作。太笨不用;

方法二,我通过查询,发现可以在Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”

<insert id="insertSelective" parameterType="EnterpriseCase" useGeneratedKeys="true" keyProperty="caseId">    insert into xxx  </insert>
这样呢,就能在执行insert后,就能从bean中get出id了,我用的就是这个方案,但是。。

因为我的mapper是通过generator自动生成的,so。。每次重新执行的时候都会把我添加的“useGeneratedKeys”和“keyProperty”覆盖掉,痛苦的手动添加的两遍后,还是放弃了;

方法三,查了下文档,添加generatedKey元素,并把identity属性,设置为true,

<table tableName="case"><generatedKey column="case_id" sqlStatement="MySql" identity="true" /></table>

会在生成的mapper的insert后面插入

<selectKey keyProperty="jobId" order="AFTER" resultType="java.lang.Integer">      SELECT LAST_INSERT_ID()</selectKey>


ok,也可以通过getJobId来获取自动生成的id了,并不需要修改mapper文件了。



文档说identity属性为true的时候the generated <selectKey> element will be placed after the insert

identity属性为false的时候,the generated <selectKey> will be placed before the insert 

然而我并没有看出什么不同。。还请指教,多谢

0 0
原创粉丝点击