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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM