mybatis配置獲取自增主鍵的操作方法
mybatis配置獲取自增主鍵
01 使用場景
- 當需要剛剛插入數(shù)據(jù)庫的數(shù)據(jù)對應的新增主鍵時,通過配置xml文件,使數(shù)據(jù)庫返回新增主鍵id,并把主鍵id與類參數(shù)對應
02 涉及配置
- 注解@TableId(type = IdType.AUTO):在類主鍵id通過配置實現(xiàn)插入數(shù)據(jù)庫時主鍵自增
public class XzsQuestionsAnswerCreate {
@ApiModelProperty(value = "選項內(nèi)容",required = true)
@NotBlank(message = "選項內(nèi)容不能為空")
private String xzsOptionText;
@ApiModelProperty(value ="選項標題",required = true)
@NotBlank(message = "選項標題不能為空")
private String xzsOptionTitle;
@TableId(type = IdType.AUTO)
@ApiModelProperty("標準答案id")
private Long answerId;
}
- mapper(數(shù)據(jù)操作層):正常插入接口
int saveQuestionAnswer(@Param("questionId")Long questionId, @Param("list")List<XzsQuestionsAnswerCreate> XzsQuestionsAnswerCreate);
- 關鍵部分:配置MySQL插入數(shù)據(jù)對應的返回值
<insert id="saveQuestionAnswer" useGeneratedKeys="true" keyProperty="list.answerId" keyColumn="xzs_question_options_id">
INSERT INTO xzs_question_options (
xzs_question_id,
xzs_option_text,
xzs_option_title
)
VALUES
<foreach collection="list" item="option" open="(" separator="), (" close=")">
#{questionId},#{option.xzsOptionText}, #{option.xzsOptionTitle}
</foreach>
</insert>
03 關鍵部分使用
| 字段 | 作用 |
|---|---|
| useGeneratedKeyss=“true” | 開啟主鍵自增返回設置 |
| keyProperty | 類屬性 |
| keyColumn | 數(shù)據(jù)庫字段 |
- keyProperty對應的是返回的自增主鍵對應的屬性,list中answerId屬性會在插入語句后被賦值
- mapper層函數(shù)中的返回值int,依舊是插入改變了多少行語句,不是自增主鍵
int saveQuestionAnswer(@Param("questionId")Long questionId, @Param("list")List<XzsQuestionsAnswerCreate> XzsQuestionsAnswerCreate);
keyColumn對應的是數(shù)據(jù)庫中的字段
到此這篇關于mybatis配置獲取自增主鍵的操作方法的文章就介紹到這了,更多相關mybatis獲取自增主鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mybatis?plus多租戶方案的實戰(zhàn)踩坑記錄
MybaitsPlus多租戶處理器是一個對于多租戶問題的解決方案,下面這篇文章主要給大家介紹了關于Mybatis?plus多租戶方案踩坑的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2021-12-12
springboot實現(xiàn)jar運行復制resources文件到指定的目錄(思路詳解)
這篇文章主要介紹了springboot實現(xiàn)jar運行復制resources文件到指定的目錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Java 編程如何使用 Class.forName() 加載類
在一些應用中,無法事先知道使用者將加載什么類,而必須讓使用者指定類名稱以加載類,可以使用 Class的靜態(tài)forName()方法實現(xiàn)動態(tài)加載類,這篇文章主要介紹了Java編程如何使用Class.forName()加載類,需要的朋友可以參考下2022-06-06
springboot+thymeleaf整合阿里云OOS對象存儲圖片的實現(xiàn)
本文主要介紹了springboot+thymeleaf整合阿里云OOS對象存儲圖片的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05
Java對象池pool2分析PooledObjectFactory過程
文章介紹了Java中對象池化技術的背景,以Apache的Pool2庫為例,詳細講解了GenericObjectPool的構(gòu)造函數(shù)參數(shù)和PooledObjectFactory接口的實現(xiàn),通過商場里的共享充電寶的比喻,說明了池化思維的應用2025-02-02
SpringBoot讀取Resource目錄文件的五種常見方式
在Spring Boot開發(fā)中,我們經(jīng)常需要讀取src/main/resources目錄下的文件,src/main/resources 目錄下通常存放配置文件、模板、靜態(tài)資源、SQL腳本等,本文給大家介紹了SpringBoot讀取Resource目錄文件的五種常見方式,需要的朋友可以參考下2025-07-07
使用Spring和Redis創(chuàng)建處理敏感數(shù)據(jù)的服務的示例代碼
許多公司處理的用戶敏感數(shù)據(jù)由于法律限制不能永久存儲,根據(jù)規(guī)定,這些數(shù)據(jù)的存儲時間不能超過預設期限,并且最好在用于服務目的之后就將其刪除,解決這個問題有多種可能的方案,在本文中,我想展示一個利用 Spring 和 Redis 處理敏感數(shù)據(jù)的應用程序的簡化示例2025-04-04

