获取MyBatis的insert、update、delete的返回值,insert返回自增主键

insert的返回值

insert标签没有resultType属性,返回boolean或者插入成功的数量(行数),执行失败则报错,不会返回

<insert id="test" parameterType="Dept">
        INSERT INTO dept(dname,db_source) VALUES(#{dname},DATABASE());
</insert>
<insert id="test" parameterType="java.util.List">
  INSERT INTO dept(dname,db_source) VALUES
    <foreach collection="list" item="dept" separator=",">
      (#{dept.dname},DATABASE())
    </foreach>
</insert>

接口返回值类型可以是如下两种

public Integer test(Dept dept);
public boolean test(Dept dept);

如果是自增型的数据库,可以返回自增后的主键,如下:

<insert id="test" parameterType="Dept" useGeneratedKeys="true" keyProperty="deptno" keyColumn="deptno">
  INSERT INTO dept(dname,db_source) VALUES(#{dname},DATABASE());
</insert>
public Object test(Dept dept) {
    Object o= dao.test(dept);
    System.out.println("dept.getDeptno(): "+dept.getDeptno());//此处会输出插入后的主键
    return o;
}

update的返回值

update标签没有resultType属性,返回boolean或者符合执行条件的数量(行数),执行失败则报错,不会返回

<update id="test" parameterType="Dept">
    update dept set db_source='123' where dname=#{dname};
</update>

接口返回值类型可以是如下两种

public Integer test(Dept dept);
public boolean test(Dept dept);

delete的返回值

delete标签没有resultType属性,返回boolean或者符合执行条件的数量(行数),执行失败则报错,不会返回

<delete id="test" parameterType="Dept">
    delete from dept where dname=#{dname};
</update>

接口返回值类型可以是如下两种

public Integer test(Dept dept);
public boolean test(Dept dept);
原文地址:https://www.cnblogs.com/javasl/p/13628082.html