Java數據庫編程

pjp 9年前發布 | 22K 次閱讀 Java Java開發

原文  http://www.cnblogs.com/gzyfj/p/4492281.html


JDBC是java中提供的一套數據庫編程API,它定義了一套用來訪問數據庫的標準Java類庫(位于java.sql和javax.sql 包中)。通過JDBC,我們可以用java編寫程序,實現與特定的數據庫進行連接,向數據庫發送SQL語句,實現對數據庫的特定操作,并對數據庫返回的結果進行處理。

JDBC編程步驟:

步驟一:根據應用程序所用的數據庫,選擇JDBC驅動程序類型;

步驟二:連接到數據庫,得到Connection對象;

步驟三:通過Connection創建Statement對象;

步驟四:使用Statement對象提交SQL語句;

步驟五:操作結果集;

步驟六:回收數據庫資源。

JDBC驅動程序分為四個類型:

JDBC-ODBC Bridge: JDBC-ODBC橋 由SUN公司提供通用的驅動,能訪問各種數據庫,但效率極低。

Native-API partly-Java driver: 本地庫Java驅動程序 執行效率高,客戶端必須安裝本地驅動,維護不方便。

net-protocal all-Java driver(JDBC Proxy) 網絡協議純Java驅動程序(通用) 客戶端不必安裝本地庫,使用方便,但性能相對較低。

native-protocal all-Java driver: 本地協議完全Java驅動程序 將JDBC調用轉化為特定數據庫的網絡協議,效率很高。

加載驅動,通過調用Class類的靜態方法forName()顯式地加載驅動:例如:

Class.forName(驅動程序類);

下面我們來看一段代碼,以便我們了解如何去建立數據庫連接:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**

  • JDBC測試
  • @author Administrator / public class JDBCDemo3 { public static void main(String[] args) { Connection conn = null; // 連接對象 Statement stmt = null; // Statement對象 / 加載驅動 / try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } / 創建Connection對象 / // 連接字符串 String url = "jdbc:mysql://localhost:3306/jdbc"; // 用戶名 String user = "root"; // 密碼 String password = "123456"; try { // 創建連接 conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); }

    / 執行的是添加多條數據到數據庫中去 / try { stmt = conn.createStatement(); stmt.addBatch("INSERT INTO users VALUES(5, 'tom1', '000000')"); stmt.addBatch("INSERT INTO users VALUES(6, 'tom2', '000000')"); stmt.addBatch("INSERT INTO users VALUES(7, 'tom3', '789000')"); stmt.addBatch("INSERT INTO users VALUES(8, 'tom4', '456000')"); stmt.addBatch("INSERT INTO users VALUES(9, 'tom5', '123')"); stmt.executeBatch(); } catch (SQLException e1) { e1.printStackTrace(); }
    / 釋放資源:必做 / try { if (stmt != null)

     stmt.close();
    

    } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null)

     try {
       conn.close();
     } catch (SQLException e) {
       e.printStackTrace();
     }
    

    } } }</pre>

 本文由用戶 pjp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!