首頁 資料庫 mysql教程 Java数据库编程中的技巧_MySQL

Java数据库编程中的技巧_MySQL

Jun 01, 2016 pm 02:07 PM
sql 執行 技巧 資料庫 更新 程式設計 語句

  1、java数据库操作基本流程

  2、几个常用的重要技巧:

  可滚动、更新的记录集

  批量更新

  事务处理

  java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接

  1、取得数据库连接

  1)用DriverManager取数据库连接

  例子:

  String className,url,uid,pwd;
  className = "oracle.jdbc.driver.OracleDriver";
  url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
  uid = "system";
  pwd = "manager";
  Class.forName(className);
  Connection cn = DriverManager.getConnection(url,uid,pwd);

  2)用jndi(java的命名和目录服务)方式

  例子

  String jndi = "jdbc/db";
  Context ctx = (Context) new InitialContext().lookup("java:comp/env");
  DataSource ds = (DataSource) ctx.lookup(jndi);
  Connection cn = ds.getConnection();

  多用于jsp中

  2、执行sql语句

  1)用Statement来执行sql语句

  String sql;
  Statement sm = cn.createStatement();
  sm.executeQuery(sql); // 执行数据查询语句(select)
  sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close();

  2)用PreparedStatement来执行sql语句

  String sql;
  sql = "insert into user (id,name) values (?,?)";
  PreparedStatement ps = cn.prepareStatement(sql);
  ps.setInt(1,xxx);
  ps.setString(2,xxx);
  ...
  ResultSet rs = ps.executeQuery(); // 查询
  int c = ps.executeUpdate(); // 更新

  3、处理执行结果

  查询语句,返回记录集ResultSet。

  更新语句,返回数字,表示该更新影响的记录数。

  ResultSet的方法:

  1、next(),将游标往后移动一行,如果成功返回true;否则返回false。

  2、getInt("id")或getSting("name"),返回当前游标下某个字段的值。

  3、释放连接。

  cn.close();

  一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection

  可滚动、更新的记录集

  1、创建可滚动、更新的Statement

  Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);

  该Statement取得的ResultSet就是可滚动的

  2、创建PreparedStatement时指定参数

  PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

  ResultSet.absolute(9000);

  批量更新

  1、Statement

  Statement sm = cn.createStatement();
  sm.addBatch(sql1);
  sm.addBatch(sql2);
  ...
  sm.executeBatch()

  一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有

  2、PreparedStatement

  PreparedStatement ps = cn.preparedStatement(sql);
  {
  ps.setXXX(1,xxx);
  ...
  ps.addBatch();
  }
  ps.executeBatch();

  一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。

  事务的处理

  1、关闭Connection的自动提交

  cn.setAutoCommit(false);

  2、执行一系列sql语句

  要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close

  Statement sm ;
  sm = cn.createStatement(insert into user...);
  sm.executeUpdate();
  sm.close();

  sm = cn.createStatement("insert into corp...);
  sm.executeUpdate();
  sm.close();

  3、提交

  cn.commit();

  4、如果发生异常,那么回滚

  cn.rollback();



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
釋放你內心的程式設計師:C 絕對初學者 釋放你內心的程式設計師:C 絕對初學者 Oct 11, 2024 pm 03:50 PM

C語言是初學者學習程式設計的理想選擇,其優點包括效率、多功能性和可移植性。學習C語言需要:安裝C編譯器(如MinGW或Cygwin)了解變數、資料型別、條件語句和迴圈語句編寫包含主函數和printf()函數的第一個程式透過實戰案例(如計算平均數)練習C語言知識

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

使用 Python 解決問題:作為初學者,解鎖強大的解決方案 使用 Python 解決問題:作為初學者,解鎖強大的解決方案 Oct 11, 2024 pm 08:58 PM

Python 讓初學者能夠解決問題。

編碼的關鍵:為初學者釋放 Python 的力量 編碼的關鍵:為初學者釋放 Python 的力量 Oct 11, 2024 pm 12:17 PM

Python透過其易學性和​​強大功能,是初學者的理想程式設計入門語言。其基礎包括:變數:用於儲存資料(數字、字串、列表等)。資料型態:定義變數中資料的型態(整數、浮點數等)。運算符:用於數學運算和比較。控制流程:控製程式碼執行流程(條件語句、迴圈)。

Python 的力量,簡單:一種適合初學者的程式設計方法 Python 的力量,簡單:一種適合初學者的程式設計方法 Oct 11, 2024 pm 04:53 PM

Python程式設計入門安裝Python:從官方網站下載並安裝。 HelloWorld!:使用print("HelloWorld!")列印第一行程式碼。實戰案例:計算圓面積:使用π(3.14159)和半徑計算圓面積。變數和資料類型:使用變數儲存數據,Python中的資料類型包括整數、浮點數、字串和布林值。表達式與賦值:使用運算子將變數、常數和函數連接起來,並使用賦值運算子(=)將值賦給變數。控制流程:if-else語句:根據條件執行不同的程式碼區塊,確定奇

揭秘 C:為新程式設計師提供一條清晰簡單的道路 揭秘 C:為新程式設計師提供一條清晰簡單的道路 Oct 11, 2024 pm 10:47 PM

C是初學者學習系統程式設計的理想選擇,它包含以下元件:頭檔、函數和主函數。一個簡單的C程式可以列印“HelloWorld”,需要包含標準輸入/輸出函數聲明的頭文件,並在主函數中使用printf函數來列印。透過使用GCC編譯器可以編譯和執行C程式。掌握基礎後,可以繼續學習資料類型、函數、陣列和文件處理等主題,以成為熟練的C程式設計師。

MySQL:世界上最受歡迎的數據庫的簡介 MySQL:世界上最受歡迎的數據庫的簡介 Apr 12, 2025 am 12:18 AM

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

為什麼要使用mysql?利益和優勢 為什麼要使用mysql?利益和優勢 Apr 12, 2025 am 12:17 AM

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

See all articles