在xml中 insert 标签中定义
useGeneratedKeys为true,使用自增id,用来设置返回主键id的值 keyProperty 代表实体类映射字段段 keyColumn 代表数据库字段 useGeneratedKeys="true" keyProperty="id" 两个属性配合使用,支持单条或批量插入返回主键信息。
<insert id="insertTSupply" parameterType="TSupply" useGeneratedKeys="true" keyProperty="id">
insert into t_supply
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="title != null">title,</if>
<if test="details != null">details,</if>
注意事项:使用useGeneratedKeys生成主键时,不能在DAO层使用@Param注解传递参数,否则无法获取主键。
//Dao层对应的代码 不能使用 @Param注解传递参数
//Long savNewUser(@Param("user") User user);
Long savNewUser( User user);
在xml里使用selectKey
<!--添加订单到order-->
<insert id="insert" parameterType="com.hxj.pojo.Orderx">
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
select LAST_INSERT_ID()
</selectKey>
insert into orderx(userid,allprice,ordertime,address)
values(#{userid},#{allprice},#{ordertime},#{address})
</insert>
注解方式
// 返回主键字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert into t_user (name,age) values (#{name},#{age})")
void insert(Student stu);
mybatisPlus
调用 BaseMapper 的 insert方法后 ,默认将自增主键封装在插入对象中
标签:insert,自增,useGeneratedKeys,into,id,user,mybatis,主键 From: https://blog.51cto.com/u_16129094/6346247