• Mybatis中insert中返回主键ID的方法——mapper.xml


    myMapper.xml

    <insert id="insertXXX" useGeneratedKeys="true" keyProperty="MyId" parameterType="com.xx.yy.MyClass">
            //普通的插入语句SQL语句
    </insert>

     这样就可以插入数据后,直接用对象getId()

    useGeneratedKeys:
          取值范围:true|false                默认值是:false。

          含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了。

    keyProperty:
          标记一个属性, MyBatis 会通过 getGeneratedKeys 或者通过 insert 语句的 selectKey 子元素设置它的值。默认: 不设置。

          所示,我们在insert中指定了keyProperty="id",其中id代表插入的User对象的主键属性id(User对象中id名,非SQL字段名。User对象id对应SQL中主键字段)。

          仅对 insert 有用。

    举个例子:

    public class User {
        private int id;
        private String name;
     
        public int getId() {
            return id;
        }
     
        public void setId(int id) {
            this.id= id;
        }
        //省略其它 get 和 set方法
    }
    User user = new User();
    user.setUserName("chenzhou");
     
    userDao.insertAndGetId(user);//插入操作

    Integer id = user.getUserId()//直接获取主键id
    System.out.println("返回的主键为:"+id);
    <insert id="addUser" useGeneratedKeys="true" parameterType="com.lan.vote.model.User"  keyProperty="id">
        insert into User(name) values(#{name})
    </insert>

     转载:https://blog.csdn.net/sinat_39308893/article/details/86595063

  • 相关阅读:
    线段树节点到底开多大
    HDU4901 The Romantic Hero DP
    VIM 配置文件可执行命令
    codeforces159D
    codeforces416B
    codeforces165C
    codeforces332B
    Node.js权威指南 (9)
    iOS-android-windowsphone等移动终端平台开发流程图
    前端面试题细节问题
  • 原文地址:https://www.cnblogs.com/bigbigxiao/p/13366483.html
Copyright © 2020-2023  润新知