要设置useGeneratedKeys=true,需要在mybatis的mapper.xml文件中编写对应的代码。在这之前,需要了解一下什么是自动生成主键(Generated Key)、什么是useGeneratedKeys=true、以及如何使用。
自动生成主键是指在将数据插入到关系数据库中时,主键值可以由数据库自动生成,这种方式可以有效减少数据库的工作量,避免因插入重复主键的记录而导致插入操作失败。useGeneratedKeys=true,是mybatis中开启自动生成主键的方式。当开启了useGeneratedKeys=true后,mybatis会执行select last_insert_id()语句来得到插入的主键值,并将其赋值给插入时的对象。
要使用useGeneratedKeys,首先需要在插入语句中设置主键的字段名和值为null。下面是一个示例:
<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into tb_user(name, age) values(#{name}, #{age})
</insert>
在这个示例中,我们可以看到在insert标签中加入了useGeneratedKeys="true"属性,同时在keyProperty属性中设置了对象中需要被赋值的主键字段。同时在插入语句中,将id字段的值设置为null。
另一个示例:
<insert id="addUser" parameterType="User" useGeneratedKeys="true">
insert into tb_user(name, age) values(#{name}, #{age})
</insert>
在这个示例中,我们同样对useGeneratedKeys属性设置为true,但是没有设置keyProperty属性。在这种情况下,mybatis将把自动生成的主键值赋值给对象中的第一个主键字段。如果对象不包含主键字段,则简单地忽略此返回值。
总之,这个攻略中我们了解了自动生成主键和useGeneratedKeys=true的概念,掌握了在mybatis mapper.xml文件中设置useGeneratedKeys属性和设置需要被赋值的主键字段的方式,掌握了如何在插入语句中设置主键字段的值为null的技巧。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis如何设置useGeneratedKeys=true - Python技术站