mybatis配置獲取自增主鍵的操作方法
mybatis配置獲取自增主鍵
01 使用場景
- 當(dāng)需要?jiǎng)倓偛迦霐?shù)據(jù)庫的數(shù)據(jù)對應(yīng)的新增主鍵時(shí),通過配置xml文件,使數(shù)據(jù)庫返回新增主鍵id,并把主鍵id與類參數(shù)對應(yīng)
02 涉及配置
- 注解@TableId(type = IdType.AUTO):在類主鍵id通過配置實(shí)現(xiàn)插入數(shù)據(jù)庫時(shí)主鍵自增
public class XzsQuestionsAnswerCreate {
@ApiModelProperty(value = "選項(xiàng)內(nèi)容",required = true)
@NotBlank(message = "選項(xiàng)內(nèi)容不能為空")
private String xzsOptionText;
@ApiModelProperty(value ="選項(xiàng)標(biāo)題",required = true)
@NotBlank(message = "選項(xiàng)標(biāo)題不能為空")
private String xzsOptionTitle;
@TableId(type = IdType.AUTO)
@ApiModelProperty("標(biāo)準(zhǔn)答案id")
private Long answerId;
}
- mapper(數(shù)據(jù)操作層):正常插入接口
int saveQuestionAnswer(@Param("questionId")Long questionId, @Param("list")List<XzsQuestionsAnswerCreate> XzsQuestionsAnswerCreate);
- 關(guān)鍵部分:配置MySQL插入數(shù)據(jù)對應(yīng)的返回值
<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 關(guān)鍵部分使用
| 字段 | 作用 |
|---|---|
| useGeneratedKeyss=“true” | 開啟主鍵自增返回設(shè)置 |
| keyProperty | 類屬性 |
| keyColumn | 數(shù)據(jù)庫字段 |
- keyProperty對應(yīng)的是返回的自增主鍵對應(yīng)的屬性,list中answerId屬性會(huì)在插入語句后被賦值
- mapper層函數(shù)中的返回值int,依舊是插入改變了多少行語句,不是自增主鍵
int saveQuestionAnswer(@Param("questionId")Long questionId, @Param("list")List<XzsQuestionsAnswerCreate> XzsQuestionsAnswerCreate);
keyColumn對應(yīng)的是數(shù)據(jù)庫中的字段
到此這篇關(guān)于mybatis配置獲取自增主鍵的操作方法的文章就介紹到這了,更多相關(guān)mybatis獲取自增主鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ThreadPoolExecutor核心線程數(shù)和RocketMQ消費(fèi)線程調(diào)整詳解
這篇文章主要介紹了ThreadPoolExecutor核心線程數(shù)和RocketMQ消費(fèi)線程調(diào)整詳解,Rocketmq 消費(fèi)者在高峰期希望手動(dòng)減少消費(fèi)線程數(shù),通過DefaultMQPushConsumer.updateCorePoolSize方法可以調(diào)用內(nèi)部的setCorePoolSize設(shè)置多線程核心線程數(shù),需要的朋友可以參考下2023-10-10
Mybatis邏輯分頁與物理分頁P(yáng)ageHelper使用解析
這篇文章主要為大家介紹了Mybatis邏輯分頁與物理分頁P(yáng)ageHelper使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
SpringBoot中使用AOP實(shí)現(xiàn)日志記錄功能
AOP的全稱是Aspect-Oriented Programming,即面向切面編程(也稱面向方面編程),它是面向?qū)ο缶幊蹋∣OP)的一種補(bǔ)充,目前已成為一種比較成熟的編程方式,本文給大家介紹了SpringBoot中使用AOP實(shí)現(xiàn)日志記錄功能,需要的朋友可以參考下2024-05-05

