如何使JDBC插入資料的時候返回自動增長的主鍵值

2021-09-05 17:55:16 字數 752 閱讀 3646

通常插入資料時的**如下:

...

string sql = "insert into table (name) values(?)";

preparedstatement pstmt = conn.preparestatement(sql);

// 如果使用靜態的sql,則不需要動態插入引數

pstmt.setstring(1, name);

pstmt.executeupdate();

...

如果想要獲取自動增長的主鍵值,**如下:

string sql = "insert into table (name) values(?)"; 

// 指定返回生成的主鍵

preparedstatement pstmt = conn.preparestatement(sql, statement.return_generated_keys);

// 如果使用靜態的sql,則不需要動態插入引數

pstmt.setstring(1, name);

pstmt.executeupdate();

// 檢索由於執行此 statement 物件而建立的所有自動生成的鍵

resultset rs = pstmt.getgeneratedkeys();

if (rs.next())

...

rs.getint(1)的返回值即是返回的主鍵值。

如何利用jdbc快速插入百萬條資料

當須要向資料庫插入百萬條資料時,利用hibernate,mybatis等持久層框架時耗時較久,此時使用jdbc插入效率會更高。此種場景特別適用於讀取檔案匯入到資料庫。可以利用批處理來加快jdbc的插入效率。string sql insert into person id,name values co...

如何使資料庫插入多條資料用時最短

如何使插入條資料用時最短?可以根據專案實際情況採用如下幾種方式 為何對同乙個表的插入多執行緒會比單執行緒快?同一時間對乙個表的寫操作不應該是獨佔的嗎?在資料裡做插入操作的時候,整體時間的分配是這樣的 從這裡可以看出來,真正耗時的不是操作,而是鏈結,解析的過程。mysql插入資料在寫階段是獨佔的,但是...

使用JDBC插入大量資料的效能測試

使用jdbc向資料庫插入100000條記錄,分別使用statement,preparedstatement,及preparedstatement 批處理3種方式進行測試 1 使用statement插入100000條記錄 public void exec connection conn catch s...