Mybatis插入记录并返回主键id

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xidian2850/article/details/89288221

转载自:mysql 插入数据后返回自增 ID 的七种方法

使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性

1.在Mybatis Mapper文件中添加属性 “useGeneratedKeys”和“keyProperty”,其中 keyProperty 是 Java 对象的属性名,而不是表格的字段名。

实体类:

public class Picture {
    private Integer picid;

    private Integer bookid;

    private String coverpic;

    private String briefpic1;

    private String briefpic2;

    private String briefpic3;

    private String briefpic4;

    private String detailpic1;

    private String detailpic2;

    private String detailpic3;

    private String detailpic4;

    public Integer getPicid() {
        return picid;
    }

    public void setPicid(Integer picid) {
        this.picid = picid;
    }

    public Integer getBookid() {
        return bookid;
    }

    public void setBookid(Integer bookid) {
        this.bookid = bookid;
    }

    public String getCoverpic() {
        return coverpic;
    }

    public void setCoverpic(String coverpic) {
        this.coverpic = coverpic == null ? null : coverpic.trim();
    }

    public String getBriefpic1() {
        return briefpic1;
    }

    public void setBriefpic1(String briefpic1) {
        this.briefpic1 = briefpic1 == null ? null : briefpic1.trim();
    }

    public String getBriefpic2() {
        return briefpic2;
    }

    public void setBriefpic2(String briefpic2) {
        this.briefpic2 = briefpic2 == null ? null : briefpic2.trim();
    }

    public String getBriefpic3() {
        return briefpic3;
    }

    public void setBriefpic3(String briefpic3) {
        this.briefpic3 = briefpic3 == null ? null : briefpic3.trim();
    }

    public String getBriefpic4() {
        return briefpic4;
    }

    public void setBriefpic4(String briefpic4) {
        this.briefpic4 = briefpic4 == null ? null : briefpic4.trim();
    }

    public String getDetailpic1() {
        return detailpic1;
    }

    public void setDetailpic1(String detailpic1) {
        this.detailpic1 = detailpic1 == null ? null : detailpic1.trim();
    }

    public String getDetailpic2() {
        return detailpic2;
    }

    public void setDetailpic2(String detailpic2) {
        this.detailpic2 = detailpic2 == null ? null : detailpic2.trim();
    }

    public String getDetailpic3() {
        return detailpic3;
    }

    public void setDetailpic3(String detailpic3) {
        this.detailpic3 = detailpic3 == null ? null : detailpic3.trim();
    }

    public String getDetailpic4() {
        return detailpic4;
    }

    public void setDetailpic4(String detailpic4) {
        this.detailpic4 = detailpic4 == null ? null : detailpic4.trim();
    }

	public Picture() {
		super();
	}

	public Picture(Integer picid, Integer bookid, String coverpic,
			String briefpic1, String briefpic2, String briefpic3,
			String briefpic4, String detailpic1, String detailpic2,
			String detailpic3, String detailpic4) {
		super();
		this.picid = picid;
		this.bookid = bookid;
		this.coverpic = coverpic;
		this.briefpic1 = briefpic1;
		this.briefpic2 = briefpic2;
		this.briefpic3 = briefpic3;
		this.briefpic4 = briefpic4;
		this.detailpic1 = detailpic1;
		this.detailpic2 = detailpic2;
		this.detailpic3 = detailpic3;
		this.detailpic4 = detailpic4;
	}

	@Override
	public String toString() {
		return "Picture [picid=" + picid + ", bookid=" + bookid + ", coverpic="
				+ coverpic + ", briefpic1=" + briefpic1 + ", briefpic2="
				+ briefpic2 + ", briefpic3=" + briefpic3 + ", briefpic4="
				+ briefpic4 + ", detailpic1=" + detailpic1 + ", detailpic2="
				+ detailpic2 + ", detailpic3=" + detailpic3 + ", detailpic4="
				+ detailpic4 + "]";
	}
	
}
 <!-- 插入并返回主键 -->
   <insert id="insertPicture" parameterType="com.hzy.domain.Picture" useGeneratedKeys="true" keyProperty="picid" >
    insert into t_picture (picid, bookid, coverpic, 
      briefpic_1, briefpic_2, briefpic_3, 
      briefpic_4, detailpic_1, detailpic_2, 
      detailpic_3, detailpic_4)
    values (#{picid,jdbcType=INTEGER}, #{bookid,jdbcType=INTEGER}, #{coverpic,jdbcType=VARCHAR}, 
      #{briefpic1,jdbcType=VARCHAR}, #{briefpic2,jdbcType=VARCHAR}, #{briefpic3,jdbcType=VARCHAR}, 
      #{briefpic4,jdbcType=VARCHAR}, #{detailpic1,jdbcType=VARCHAR}, #{detailpic2,jdbcType=VARCHAR}, 
      #{detailpic3,jdbcType=VARCHAR}, #{detailpic4,jdbcType=VARCHAR})
  </insert>

返回id:

	@Test
	public void getIdAfterInsert(){
		Picture p = new Picture();
		p.setCoverpic("测试以药养医");
		int result = pictureMapper.insertPicture(p);
		int picid = p.getPicid();
		System.out.println("id---: " + picid);
	}

测试结果:

id---: 84

猜你喜欢

转载自blog.csdn.net/Xidian2850/article/details/89288221
今日推荐