获取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);