欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的踩坑記錄

 更新時間:2022年08月05日 14:53:15   作者:葫蘆北  
在某些情況下,需要在執(zhí)行新增后,需要獲取到新增行的id,這篇文章主要給大家介紹了關(guān)于Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

問題描述:

Mybatis Plus的insert方法,按說插入數(shù)據(jù)后會自動返回id

mapper方法:

@DS("wxuser")
@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {

}

業(yè)務(wù)類:

		@Autowired
		UserInfoMapper userInfoMapper;

		UserInfo user = new UserInfo();
        user.setAddress(userInfo.getAddress());
        user.setAge(userInfo.getAge());
        user.setMobile(userInfo.getMobile());
        user.setCreateTime(new Date());
        user.setUpdateTime(new Date());
        // 此num是指的插入數(shù)據(jù)成功的條數(shù)
        int num = userInfoMapper.insert(user);
        //如果想要獲取插入數(shù)據(jù)的id,需要:user.getUserId();
        int id = user.getUserId();

這樣按說是可以的,但是我這里仍然獲取不到,所以需要再修改。

解決方法:

修改后mapper類:

@DS("wxuser")
@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {
    int saveUserInfo(@Param("userInfo")UserInfo userInfo);
}

在resources目錄中新建mapper目錄,創(chuàng)建UserInfoMapper.xml文件:

注意三個值:

useGeneratedKeys=“true”

說明:允許 JDBC 支持自動生成主鍵,需要數(shù)據(jù)庫驅(qū)動支持。如果設(shè)置為 true,將強制使用自動生成主鍵。盡管一些數(shù)據(jù)庫驅(qū)動不支持此特性,但仍可正常工作(如 Derby)。

(僅適用于 insert 和 update)這會令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法來取出由數(shù)據(jù)庫內(nèi)部生成的主鍵(比如:像 MySQL 和 SQL Server 這樣的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的自動遞增字段),默認值:false。

keyProperty=“userInfo.userId”

說明:keyProperty中對應(yīng)的值是實體類的屬性,而不是數(shù)據(jù)庫的字段

keyColumn=“userId”

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wx.user.mapper.UserInfoMapper">

    <insert id="saveUserInfo" useGeneratedKeys="true" keyProperty="userInfo.userId" keyColumn="userId">
        insert into userInfo (userNick,userName,password,isdelete,address,mobile)  values (#{userInfo.userNick},#{userInfo.userName},#{userInfo.password},#{userInfo.isDelete},#{userInfo.address},#{userInfo.mobile})
    </insert>

</mapper>

application.yml文件中:

# Mybatis Plus
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false # 設(shè)置字段不使用下劃線方式
  global-config:
    db-config:
      id-type: AUTO
      table-underline: false # 設(shè)置表名字不使用下劃線方式
  mapper-locations: classpath*:/mapper/**/*.xml

修改后的業(yè)務(wù)類:

		@Autowired
		UserInfoMapper userInfoMapper;

		UserInfo user = new UserInfo();
        user.setAddress(userInfo.getAddress());
        user.setAge(userInfo.getAge());
        user.setMobile(userInfo.getMobile());
        user.setCreateTime(new Date());
        user.setUpdateTime(new Date());
        // 此num是指的插入數(shù)據(jù)成功的條數(shù)
        int num = userInfoMapper.saveUserInfo(user);
        //如果想要獲取插入數(shù)據(jù)的id,需要:user.getUserId();
        int id = user.getUserId();

這樣就可以獲取到新插入數(shù)據(jù)的id值了

總結(jié)

到此這篇關(guān)于Mybatis Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的文章就介紹到這了,更多相關(guān)Mybatis Plus獲取新數(shù)據(jù)id值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • Java中使用instanceof判斷對象類型的示例

    Java中使用instanceof判斷對象類型的示例

    在List<Object>中遍歷Object時,先判斷類型,再定向轉(zhuǎn)換,本文給大家介紹Java中使用instanceof判斷對象類型,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • SpringBoot2.x漏洞將logback1.2.x 升級至1.3.x

    SpringBoot2.x漏洞將logback1.2.x 升級至1.3.x

    安全部門在代碼漏洞掃描中發(fā)現(xiàn)logback 1.2.x版本存在CVE漏洞,建議升級至1.3.x版本,本文就來介紹了logback1.2.x 升級至1.3.x,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • SpringBoot v2.2以上重復(fù)讀取Request Body內(nèi)容的解決方案

    SpringBoot v2.2以上重復(fù)讀取Request Body內(nèi)容的解決方案

    這篇文章主要介紹了SpringBoot v2.2以上重復(fù)讀取Request Body內(nèi)容的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot如何使用TraceId日志鏈路追蹤

    SpringBoot如何使用TraceId日志鏈路追蹤

    文章介紹了如何使用TraceId進行日志鏈路追蹤,通過在日志中添加TraceId關(guān)鍵字,可以將同一次業(yè)務(wù)調(diào)用鏈上的日志串起來,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • SpringBoot實現(xiàn)分頁功能

    SpringBoot實現(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • IDEA:Error running,Command line is too long.解決方案

    IDEA:Error running,Command line is too&n

    這篇文章主要介紹了IDEA:Error running,Command line is too long.解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java實現(xiàn)DelayQueue延遲隊列示例代碼

    Java實現(xiàn)DelayQueue延遲隊列示例代碼

    Java中的DelayQueue是一個特殊的隊列,它只允許在指定的延遲時間之后才能從隊列中取出元素,這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)DelayQueue延遲隊列的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • Java8中List轉(zhuǎn)Map的多種方式代碼

    Java8中List轉(zhuǎn)Map的多種方式代碼

    這篇文章主要給大家介紹了關(guān)于Java8中List轉(zhuǎn)Map的多種方式,在實際項目中我們經(jīng)常會用到List轉(zhuǎn)Map操作,本文介紹了多種方法的實現(xiàn)代碼,需要的朋友可以參考下
    2023-08-08
  • String.trim()消除不了空格的問題及解決

    String.trim()消除不了空格的問題及解決

    這篇文章主要介紹了String.trim()消除不了空格的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java實現(xiàn)字符串的全排列

    java實現(xiàn)字符串的全排列

    這篇文章主要為大家詳細介紹了java實現(xiàn)字符串的全排列,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論