1、mybatis插入或修改实体后,返回受影响的记录个数(注:所用数据库为mysql)。
mybatis 实体的mapper.xml文件:
<insert id="insertSelective" parameterType="com.***.member.entity.MemberEntity">
Dao接口:
int insertSelective(MemberEntity record);
DaoTest类:
int num = memberEntityMapper.insert(member);
num返回的则为插入数据库后影响的记录个数。
2、mybatis插入或修改实体后,返回主键id。这时就需要使用useGeneratedKeys和keyProperty。
useGeneratedKeys | (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。 |
keyProperty | (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。 |
<insert id="insert" parameterType="com.ydsj.member.entity.MemberEntity" useGeneratedKeys="true" keyProperty="memberid">
Dao接口:
int insert(MemberEntity record);
DaoTest类:
int num = memberEntityMapper.insert(member);
Long memberId = member.getMemberid();
keyProper 指定的是实体类中memberid,不是数据库中的memberId;num为返回受影响的记录个数,memberId为实体主键值。