在Mybatis中插入一条记录并返回该记录的主键(假设插入的是doctor)
实体
@Data
public class Doctor {
private int id;
//医生名
private String name;
//医院id
private Integer hospitalId;
}
service
int save(Doctor doctor);
serviceImpl
int save(Doctor doctor);
Dao(dao层不能用@Param注解)
int save(Doctor doctor);
mapper
<insert id="save" parameterType="doctor" useGeneratedKeys="true" keyProperty="id">
INSERT INTO doctor (name,hospital_id) VALUES (#{name},#{hospitalId})
</insert>
test
Doctor doctor=new Doctor();
doctor.setName("test");
doctor.setHospitalId(1);
int row=doctorService.save(doctor);
System.out.println(“影响行数:”+row);
System.out.println(“id:”+doctor.getId());
结果
影响行数:1
id:10
解释
parameterType :代表传入参数类型,这里是"doctor"
useGeneratedKeys:默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回
keyProperty: 对应的主键在实体类中的属性名,这里是“id“