新聞中心
Mybatis是一種開(kāi)源的Java持久層框架,它能夠?qū)ava對(duì)象映射到關(guān)系型數(shù)據(jù)庫(kù)中。Mybatis的主要功能是將SQL語(yǔ)句和Java代碼分開(kāi),使得開(kāi)發(fā)人員能夠更加專(zhuān)注于Java代碼的編寫(xiě),而不用去關(guān)心SQL語(yǔ)句的具體實(shí)現(xiàn)。

創(chuàng)新互聯(lián)服務(wù)電話(huà):18982081108,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)網(wǎng)頁(yè)制作領(lǐng)域十余年,包括成都茶藝設(shè)計(jì)等多個(gè)行業(yè)擁有多年設(shè)計(jì)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián),為網(wǎng)站錦上添花。
在Mybatis中,數(shù)據(jù)庫(kù)中的自增主鍵(auto_increment)是非常常見(jiàn)的一種數(shù)據(jù)類(lèi)型。當(dāng)我們?cè)诓迦霐?shù)據(jù)時(shí),通常需要獲取新插入數(shù)據(jù)的主鍵值。本文將介紹如何在Mybatis中獲取數(shù)據(jù)庫(kù)中的自增主鍵。
一、設(shè)置主鍵生成策略
在Mybatis的映射文件中,我們需要設(shè)置主鍵生成策略,以告訴Mybatis如何生成主鍵。
在標(biāo)簽中,我們可以使用子標(biāo)簽來(lái)設(shè)置主鍵生成策略。該子標(biāo)簽有三個(gè)屬性:
1. keyProperty:指定Java對(duì)象中哪個(gè)屬性應(yīng)該被賦值為主鍵值。
2. order:指定SELECT語(yǔ)句的執(zhí)行順序。有兩個(gè)可選值:BEFORE和AFTER。如果order的值為BEFORE,則先執(zhí)行SELECT語(yǔ)句,再執(zhí)行INSERT語(yǔ)句。如果order的值為AFTER,則先執(zhí)行INSERT語(yǔ)句,再執(zhí)行SELECT語(yǔ)句。
3. resultType:指定SELECT語(yǔ)句的返回值類(lèi)型。
下面是一個(gè)使用子標(biāo)簽的例子:
SELECT LAST_INSERT_ID()
INSERT INTO user(name, age) VALUES(#{name}, #{age})
上面的例子中,我們使用LAST_INSERT_ID()函數(shù)獲取自增主鍵值。LAST_INSERT_ID()是MySQL中的一個(gè)函數(shù),它返回最后一次插入操作產(chǎn)生的自增主鍵值。使用LAST_INSERT_ID()函數(shù)能夠保證線(xiàn)程安全,因?yàn)樵摵瘮?shù)只會(huì)返回當(dāng)前會(huì)話(huà)(session)中最后一次插入操作的自增主鍵值。
二、使用getGeneratedKeys方法
在Java的JDBC中提供了一個(gè)getGeneratedKeys方法,該方法能夠獲取自增主鍵的值。我們可以在Mybatis中使用getGeneratedKeys方法來(lái)獲取數(shù)據(jù)庫(kù)中的自增主鍵。
在標(biāo)簽中,我們需要添加useGeneratedKeys屬性,并將其設(shè)置為true。這樣就可以啟動(dòng)JDBC驅(qū)動(dòng)程序的自動(dòng)生成鍵機(jī)制。在執(zhí)行INSERT語(yǔ)句后,我們可以通過(guò)PreparedStatement的getGeneratedKeys()方法來(lái)獲取自增主鍵的值。
下面是一個(gè)使用getGeneratedKeys方法的例子:
keyProperty=”id”>
INSERT INTO user(name, age) VALUES(#{name}, #{age})
在上面的例子中,我們將useGeneratedKeys屬性設(shè)置為true,并指定keyProperty屬性為id。當(dāng)執(zhí)行INSERT語(yǔ)句后,Mybatis會(huì)獲取數(shù)據(jù)庫(kù)中的自增主鍵值,并將其設(shè)置到Java對(duì)象中的id屬性中。
三、
在Mybatis中獲取數(shù)據(jù)庫(kù)中的自增主鍵值,有兩種方法:一種是使用子標(biāo)簽,從而使用LAST_INSERT_ID()函數(shù)獲取自增主鍵值;另一種是使用getGeneratedKeys方法,直接從JDBC驅(qū)動(dòng)程序中獲取自增主鍵值。兩種方法均有其優(yōu)缺點(diǎn),需要開(kāi)發(fā)人員根據(jù)實(shí)際情況進(jìn)行選擇。
相關(guān)問(wèn)題拓展閱讀:
- mybatis里使用sqlsessiontemplate怎么獲得剛插入的自增主鍵id
- mybatis批量插入,怎么返回生成的自增主鍵
mybatis里使用sqlsessiontemplate怎么獲得剛插入的自增主鍵id
use 要查詢(xún)的數(shù)據(jù)庫(kù)
go
select * from information_schema.table_constraints
mybatis批量插入,怎么返回生成的自增主鍵
其次4的方式返回值只是成功與否的狀態(tài),不是自增主鍵。只不過(guò)采用了這種方式之后自增主鍵會(huì)被mybatis賦給do,這樣可以直接使用do.getid()得到插入后的主鍵
關(guān)于mybatis 獲取數(shù)據(jù)庫(kù)自增主鍵值的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專(zhuān)業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專(zhuān)屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
文章題目:Mybatis如何獲取數(shù)據(jù)庫(kù)自增主鍵值(mybatis獲取數(shù)據(jù)庫(kù)自增主鍵值)
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/djdjihi.html


咨詢(xún)
建站咨詢(xún)
