你用的oracle數(shù)據(jù)庫吧,你得到的是記錄唯一標示ROWID。不是你sequence得到的值,還是將你的字段名植入吧。再試試吧。

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團隊的力量開發(fā)出優(yōu)質的產品。成都創(chuàng)新互聯(lián)公司堅持“專注、創(chuàng)新、易用”的產品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供網(wǎng)站建設、網(wǎng)站設計、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),微信小程序開發(fā),軟件按需開發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務。
前提條件:myBBS是數(shù)據(jù)庫test中的一個表,數(shù)據(jù)庫test的Recovery Model為Full,Auto Close,Auto Shrink兩個選項未選中。數(shù)據(jù)庫test的data files和log files均為默認的自動增長狀態(tài)。
#{employee_name},#{dep_id})/insert 在Service中開啟一個事務,執(zhí)行完int r=employeeMapper.saveEmployee(e);這一行以后這個對象的主鍵就已經(jīng)有值了,并且就是主鍵。
可以寫觸發(fā)器trriger,在更新主表的主鍵前將從表的鍵值改掉再更新主表的鍵值。
這個是不可能的。Sequense是嚴格的序列號,除非被循環(huán)了。同時并發(fā)的要求SEQ,數(shù)據(jù)庫的鎖機制會將用戶排隊,保證獲得的序列是不一樣的數(shù)字。
Java入庫時主鍵反顯,是指在執(zhí)行數(shù)據(jù)庫的插入操作時,通過獲取數(shù)據(jù)庫自動生成的主鍵值來反映插入操作的結果。在實際的開發(fā)過程中,我們經(jīng)常需要在插入數(shù)據(jù)后獲取該條數(shù)據(jù)的主鍵值,以便進行后續(xù)的操作。
這時候需要從數(shù)據(jù)庫中讀取出來,你可以用剛才插入的數(shù)據(jù)作為條件查詢,同時選擇只取一條記錄,當然這種方式也不是很可靠,尤其是高并發(fā)下;如果插入數(shù)據(jù)包含主鍵,那么返回值就在你插入數(shù)據(jù)的對應位置。
有關更多信息,請查閱 java.sql 包的 Javadoc。
數(shù)據(jù)庫表名稱參數(shù)columnName :列名稱。方法getPrimaryKeys的用法功能描述:得到指定表的主鍵信息。
java.sql.DatabaseMetaData類的方法 ResultSet getImportedKeys(String catalog,String schema,String table)throws SQLException獲取由給定表的外鍵列(表導入的主鍵)引用的主鍵列的描述。
1、可以寫觸發(fā)器trriger,在更新主表的主鍵前將從表的鍵值改掉再更新主表的鍵值。舉個例子。CREATE OR REPLACE TRIGGER TRG_觸發(fā)器名 ,創(chuàng)建觸發(fā)器。BEFORE INSERT OR UPDATE ,意思是在插入或更新操作之前。
2、果直接用update語句的話,只能獲取更新條數(shù)。 要獲取id,就要先取出來,再更新。比如存儲過程中的游標。或者前臺客戶端的記錄集。
3、你說的插一條記錄,這個一條記錄放哪了?是數(shù)據(jù)庫嗎?你說的ID是放在數(shù)據(jù)庫里嗎?如果不是,放在一個類里,初值設為100000,當對數(shù)據(jù)庫經(jīng)行一次插入的操作,就把這個值+1。當然你可以把這個ID放在session中然后取出來。
本文標題:java代碼獲取表主鍵 java代碼獲取表主鍵和副鍵
分享地址:http://chinadenli.net/article7/dshpioj.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、品牌網(wǎng)站設計、App設計、全網(wǎng)營銷推廣、網(wǎng)站維護、虛擬主機
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)