在Spring中用select last_insert_id()時(shí)遇到問建站知識(shí)
導(dǎo)讀:1建站知識(shí)一直使用的Oracle數(shù)據(jù)庫(kù),通過序列來實(shí)現(xiàn)自增字段,插入之前就已經(jīng)獲得了自增id,保存下來即可在后來的操作中使用網(wǎng)站推廣優(yōu)化seo如何seo優(yōu)化推廣網(wǎng)站。
今天在使用MySQL時(shí)卻不知如何處理,插入記錄后不知怎樣獲得剛剛插入的id,查過文檔后發(fā)現(xiàn)了select last_insert_id(),在插入之后執(zhí)行此查詢,即可獲得自增id,喜出望外??捎玫阶约旱某绦蛑兄髤s得不到想要的結(jié)果,于是就懷疑到了Spring頭上,因?yàn)橥ㄟ^基本JDBC測(cè)試是沒有任何問題的,所以就去跟蹤Spring JDBC, 看過源碼之后才豁然開朗,原來Spring中如此獲得數(shù)據(jù)庫(kù)Connection的:Connection con = DataSourceUtils.getConnection(getDataSource());, 哎,只能怪自己Spring掌握不夠好,所以就不能在執(zhí)行insert之后去執(zhí)行select last_insert_id()了,因?yàn)閟elect last_insert_id()是真對(duì)當(dāng)前Connection插入和更新操作的,那在Spring中如何獲得新增記錄的鍵值呢,沒有辦法只能去Google了。發(fā)現(xiàn)了如下文章,來自IT168,標(biāo)題為《Spring應(yīng)用數(shù)據(jù)主鍵的生成策略盤點(diǎn)》,摘錄如下: 在一般情況下,在新增領(lǐng)域?qū)ο蠛螅夹枰@取對(duì)應(yīng)的主鍵值。使用應(yīng)用層來維護(hù)主鍵,在一定程度上有利于程序性能的優(yōu)化和應(yīng)用移植性的提高。在采用數(shù)據(jù)庫(kù)自增主鍵的方案里,如果JDBC驅(qū)動(dòng)不能綁定新增記錄對(duì)應(yīng)的主鍵,就需要手工執(zhí)行查詢語句以獲取對(duì)應(yīng)的主鍵值,對(duì)于高并發(fā)的系統(tǒng),這很容易返回錯(cuò)誤的主鍵。通過帶緩存的DataFiel網(wǎng)站seo優(yōu)化課程dMaxValueIncrementer,可以一次獲取批量的主鍵值,供多次插入領(lǐng)域?qū)ο髸r(shí)使用,它的執(zhí)行性能是很高的。使用數(shù)據(jù)庫(kù)的自增主鍵 我們經(jīng)常使用數(shù)據(jù)的自增字段作為表主鍵,也即主鍵值不在應(yīng)用層產(chǎn)生,而是在新增記錄時(shí),由數(shù)據(jù)庫(kù)產(chǎn)生。這樣,應(yīng)用層在保存對(duì)象前并不知道對(duì)象主鍵值,而必須在保存數(shù)據(jù)后才能從數(shù)據(jù)庫(kù)中返回主鍵值。在很多情況下,我們需要獲取新對(duì)象持久化后的主鍵值。在Hibernate等ORM框架,新對(duì)象持久化后,Hibernate會(huì)自動(dòng)將主鍵值綁定到對(duì)象上,給程序的開發(fā)帶來了很多方便。 在JDBC 3.0規(guī)范中,當(dāng)新增記錄時(shí),允許將數(shù)據(jù)庫(kù)自動(dòng)產(chǎn)生的主鍵值綁定到Statement或PreparedStatement中。使用Statement時(shí),可以通過以下方法綁定主鍵值:int executeUpdate(String sql,int autoGeneratedKeys)也可以通過Connection創(chuàng)建綁定自增值的PreparedStatement:PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) 當(dāng)autoGeneratedKeys參數(shù)設(shè)置為Statement.RETURN_GENERATED_KEYS值時(shí)即可綁定數(shù)據(jù)庫(kù)產(chǎn)生的主鍵值,設(shè)置為Statement.NO_GENERATED_KEYS時(shí),不綁定主鍵值。下面的代碼演示了Statement綁定并獲取數(shù)據(jù)庫(kù)產(chǎn)生的主鍵值的過程:
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章在Spring中用select last_insert_id()時(shí)遇到問建站知識(shí)主要講述中用,標(biāo)簽,在Spring中用select last_ins網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_5589.html
為你推薦與在Spring中用select last_insert_id()時(shí)遇到問建站知識(shí)相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長(zhǎng)度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時(shí)期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12