日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql设置id自动增长_JDBC进阶(一):批处理与获取自增长列的值

發布時間:2025/3/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql设置id自动增长_JDBC进阶(一):批处理与获取自增长列的值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、批處理

假如要插入一萬條記錄到數據表中,那么使用普通的方法就要執行一萬次插入操作,這樣會頻繁打開和關閉數據庫連接,導致執行速度變慢。

因此可以使用批處理機制將多條語句一次性提交給數據庫批量處理。

批處理的相關API:

  • void addBatch() —— 將一組參數添加到 PreparedStatement 對象的批處理命令中。
  • int[] executeBatch() —— 將一批SQL命令提交給數據庫來執行,如果全部命令執行成功,則返回更新計數組成的數組。
  • void chearBatch() —— 清空此 Statement 對象的當前 SQL 命令列表。

示例:使用批處理機制向Student表插入1008條記錄

// 參數: // jdbc協議:postgresql子協議://主機地址:數據庫端口號/要連接的數據庫名 String url = "jdbc:postgresql://localhost:5432/test2"; // 數據庫用戶名 String user = "postgres"; // 數據庫密碼 String password = "123456";// 1. 加載Driver類,Driver類對象將自動被注冊到DriverManager類中 Class.forName("org.postgresql.Driver");// 2. 連接數據庫,返回連接對象 Connection conn = DriverManager.getConnection(url, user, password);// 3. 預編譯SQL語句 String sql = "INSERT INTO Student(Sno, Sname, Ssex, Sage, Sdept) " + "VALUES(?, ?, ?, ?, ?);"; PreparedStatement pstmt = conn.prepareStatement(sql);// 4. 批處理,向Student表中插入1008條記錄 for(int i = 0; i < 1008; i++) { // 設置一條記錄的參數 pstmt.setString(1, "sno" + i); pstmt.setString(2, "student" + i); pstmt.setString(3, "男"); pstmt.setInt(4, 20); pstmt.setString(5, "CS");// 將一條記錄的參數添加到批處理命令中 pstmt.addBatch();// 每100條執行一次批處理 if(i % 100 == 0) { pstmt.executeBatch(); // 將100條插入記錄命令提交給數據庫來執行 pstmt.clearBatch(); // 清空此Statement對象的當前SQL命令列表 } } // 將剩余的8條插入記錄命令提交給數據庫執行 pstmt.executeBatch(); pstmt.clearBatch();// 關閉資源 pstmt.close(); conn.close();

二、獲取自增長列的值

數據表通常都具有主碼自增長的功能,比如Oracle的Sequence機制、MySQL的AUTO_INCREMENT以及PostgreSQL的Serial數據類型。

如果使用JDBC往數據庫表中插入一條新記錄,要想獲取主碼新增長的值,則需要再進行一次查詢操作,這樣不夠方便。

因此比較理想的方式是在進行數據插入操作時就能獲取到自增長列對應的值,JDBC也提供了這樣的功能。

相關API:

  • PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) —— 創建一個默認 PreparedStatement 對象,該對象能獲取數據表自動生成的鍵值。

參數autoGeneratedKeys - 指示是否應該返回自動生成的鍵值,它可以是 Statement.RETURN_GENERATED_KEYS 或Statement.NO_GENERATED_KEYS

  • ResultSet getGeneratedKeys() —— 獲取由于執行此 Statement 對象而創建的所有自動生成的鍵。如果此 Statement 對象沒有生成任何鍵,則返回空的 ResultSet 對象。

示例:獲取用戶表的自增長列的值

首先在PostgreSQL中創建一張t_user表,其中主碼id具有自增長功能:

CREATE TABLE t_user(id SERIAL PRIMARY KEY,name CHAR(20), password CHAR(20) );

然后在JDBC中往表插入一條記錄,獲取新插入記錄的主碼自增長值:

// 省略參數代碼...// 1. 加載Driver類,Driver類對象將自動被注冊到DriverManager類中 Class.forName("org.postgresql.Driver");// 2. 連接數據庫,返回連接對象 Connection conn = DriverManager.getConnection(url, user, password);// 3. 預編譯SQL, 獲取PreparedStatement對象 String sql = "INSERT INTO t_user(name, password) VALUES(?, ?);"; // 創建一個默認 PreparedStatement 對象,該對象能獲取自動生成的鍵。 PreparedStatement pstmt = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);// 4. 設置參數,并將SQL語句傳給數據庫執行 pstmt.setString(1, "張三"); pstmt.setString(2, "123456"); pstmt.executeUpdate();// 5. 獲取主碼自增長的值,以ResultSet類的形式返回 ResultSet rs = pstmt.getGeneratedKeys(); while(rs.next()) {System.out.println("主碼自增長值為: " + rs.getInt(1)); }

控制臺打印輸出:

總結

以上是生活随笔為你收集整理的sql设置id自动增长_JDBC进阶(一):批处理与获取自增长列的值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日骚影院 | 在线免费一级片 | 国产精品夫妻自拍 | 99热国内精品 | 日韩视频免费观看高清完整版 | 精品一区二区三区人妻 | 国产又粗又猛又黄视频 | 欧美性生话 | www超碰在线 | 波多野结衣爱爱 | 四虎国产在线观看 | 欧美黑人啪啪 | 久久久久噜噜噜亚洲熟女综合 | 久久国产人妻一区二区免色戒电影 | 国产女教师一区二区三区 | 天天干天天操天天碰 | 99热在线只有精品 | www.欧美.com| 欧美综合日韩 | 色视av| 免费黄色一级 | 亚州av一区二区 | 久久美 | 日本国产精品视频 | 中文字幕观看视频 | 黄色大片一级 | 91精品推荐| 亲吻刺激视频 | 偷拍亚洲色图 | 一本黄色片 | 国产精品久久久久久免费播放 | 北条麻妃一区二区三区四区五区 | 四虎音影 | 女人张开腿让男人插 | 日批黄色 | 91人人澡人人爽 | 黄视频在线播放 | 成人免费av在线 | 无遮挡的裸体按摩的视频 | 久久99精品国产.久久久久 | 狠狠干亚洲色图 | 亚洲伦理视频 | 久久精品视频一区二区 | 欧美大片www | 国产午夜一区二区三区 | 亚洲小视频在线播放 | 1024香蕉视频| 中文字幕丝袜诱惑 | 午夜影院在线观看 | 天啪| 少妇在军营h文高辣 | 与亲女洗澡时伦了毛片 | 亚洲一区二区高清视频 | 四虎影院黄色 | 高潮无码精品色欲av午夜福利 | 亚洲精品一二区 | xxxx日本高清 | 亚洲日本欧美在线 | 久草视频免费在线 | 人妻视频一区二区三区 | 手机看片福利视频 | 精品国产乱码久久久久久婷婷 | av在线播放一区二区三区 | 手机看片1024日韩 | 国产一线天粉嫩馒头极品av | 免费小视频在线观看 | 男男野外做爰全过程69 | 日本男人天堂网 | 在线看福利影 | 亚洲狠狠 | 李丽珍裸体午夜理伦片 | 成人录像 | www.四虎.com| 美女被男生免费视频 | 欧美激情第1页 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 邵氏电影《金莲外传2》免费观看 | 先锋资源一区 | 老子影院午夜精品无码 | 女教师三上悠亚ssni-152 | 凹凸国产熟女精品视频 | 天干夜夜爽爽日日日日 | 一级特级片 | 精品视频999 | 麻豆亚洲av熟女国产一区二 | 麻豆影视在线播放 | 91精品国产自产在线观看 | 波多野结衣在线观看一区 | xxx黄色片 | 久久久无码人妻精品无码 | 国产在线观看无码免费视频 | 2019国产在线 | 亚洲欧洲一区二区 | 一级片视频免费观看 | 少妇特黄一区二区三区 | 少妇又色又紧又黄又刺激免费 | 国产a级大片 | 天天射影院 | 午夜寂寞视频 |