insert返回主键

在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“

猜你喜欢

转载自blog.csdn.net/DingKG/article/details/87914731
今日推荐