关于MySql插入数据时有“id自增”的情况,怎么得到主键
操作背景:向数据表中插入一条数据,在表中设置了主键id为自增且不为空,那实际插入信息的时候,id可以为空,数据库会根据递增规则自动为id赋值。
环境背景: 在使用mybatis生成器的情况下。
解决方案:
在mybatis生成器生成的对应数据表的XML文件中的标签,添加属性keyProperty=“id” useGeneratedKeys=“true”:
<insert id="insert" parameterType="miaoshaProject.dataobject.UserDO" keyProperty="id" useGeneratedKeys="true">
keyProperty 取id的key值,主要是在主键是自增的情况下,添加成功后可以直接使用主键值,其中keyProperty的值是对象的属性值不是数据库表中的字段名。
useGeneratedKeys 取值范围true、false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。