form1.cn
Make a little progress every day

Mybatis基于XML或注解获取Insert记录后的自增长ID

23th of July 2017 Java Java 2111

1.在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名,而不是表格的字段名。

<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id">    
        insert into system(name) values(#{name})    
</insert>

 

2.Mybatis执行完插入语句后,自动将自增长值赋值给对象systemBean的属性id。因此,可通过实体类中对应的getter方法获取!

int count = systemService.insert(systemBean);    
int id = systemBean.getId(); //获取到的即为新插入记录的ID


3.基于注解的话,加一个@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") 就可以,其它都一样


【注意事项】

1.Mybatis Mapper 文件中,“useGeneratedKeys”和“keyProperty”必须添加,而且keyProperty一定得和java对象的属性名称一直,而不是表格的字段名

2.java Dao中的Insert方法,传递的参数必须为java对象,也就是Bean,而不能是某个参数。