mybatis主键生成

mybatis官方文档中这样介绍:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。
keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

示例: 

<insert id="insert" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
</insert>

注意:mybatis的返回主键方式并不是通过返回值返回,而是通过传入的对象参数中指定的id返回,返回值返回的是添加的记录条数;

//serviceImpl.java ==>

public int insert(Author item){
     int addNum = mapper.insert(item);
    
     /*
      这里的item对象的id就是xml中 keyProperty中指定的id名
     */
     System.out.println("该记录的主键为:"+item.getId());
     
     return addNum; 
}

猜你喜欢

转载自blog.csdn.net/sby_1995/article/details/87627180