以前写sql语句的时候,在用到插入和修改时从来没有返回过东西,今天才知道原来插入和修改方法是有返回值的。
查询就不用说了,肯定是返回你要查询的数据,那么增删改的方法执行之后有没有返回值呢?
有的。
insert,返回值是什么呢?一般情况下,会返回变动的行数。你插入了几行就返回几。
<insert id="insert" parameterType="User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
通过使用keyProperty属性可以返回主键
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
update和delete默认返回被操作的记录条数,可以修改为返回操作的主键id,类似insert操作useGeneratedKeys=”true” keyProperty=”userId”
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>