在很多场景下,会将某个实体的主键设为自增长,但在某些场景下,需要在实体插入数据的同时就获取该实体的主键值;例如在用户注册时,我们需要将用户信息插入用户表,同时,我们需要生成一条与用户关联的另一张表的记录,在同一段逻辑代码中,就需要用户信息插入的同时,返回自增长的主键用以关联其他信息,mybatis配置方式如下。
实体类
("acc_sys_t_user")
public class SysUser implements Serializable {
("userID")
(value = "userID",type = IdType.AUTO)// id自增长
private Long userID;
("userName")
private String userName;
("accNum")
private String accNum;
("creTm")
private String creTm;
("roleCode")
private Long roleCode;
}
mapper接口
public interface SysUserMapper extends BaseMapper<SysUser> {
// 配置返回主键
(useGeneratedKeys = true, keyProperty = "userID", keyColumn = "userID")
("INSERT INTO acc_sys_t_user (userName,accNum,creTm,roleCode)VALUES (#{userName},#{accNum},#{creTm},#{roleCode})")
int insertUser(SysUser user);
}
service测试
public ApiResult testInsertUser(){
SysUser user = new SysUser();
user.setUserName("张珊");
user.setAccNum("112110");
user.setRoleCode(1L);
user.setCreTm(DateUtil.dateToYMDHMS(new Date()));
System.out.println("插入前 "+user);
int i = mapper.insertUser(user);
System.out.println("插入后 "+user);
return new ApiResult().success(user);
}
测试结果