初學jdbc的感悟
JDBC也是Sun Microsystems的商標
我們一般把jdbc稱為java database connectivity(java 資料庫連接),是Java語言中用來規范客戶端程式如何來訪問資料庫的應用程式介面,通過它,我們就可以連接各種不同的資料庫,執行各種如 insert,delete,update, select 等 DML(資料操作語言)陳述句,甚至可以執行如 create table,drop table 等 DDL(資料定義語言)陳述句,它還支持呼叫存盤程序等,同時JDBC也是Sun Microsystems的商標,
jdbc就是一些類和介面的集合,在這給大家介紹一下,jdbc主要用的介面Driver介面(用來表示驅動程式類),Connection介面(用于連接資料庫)、Statement介面(執行 SQL 陳述句并將資料檢索到 ResultSet 中)、ResultSet 介面( 資料庫結果集資料表,通常由執行查詢資料庫陳述句產生)、PreparedStatement 介面( 執行預編譯 SQL 陳述句)、DriverManager 類 (驅動程式管理器,通過它來得到連接物件),注意,它是一個類,通過呼叫它的DriverManager.getConnection()的這個方法來連接物件,
接下來就是實際操作啦
1. 首先我們要通過官網下載驅動程式jar包,jar包中的類實作JDBC介面(在百度搜索mysql/sql jdbc driver download),然后我們要在自己的專案里匯入這個jar包,
2. 然后我們就開始進入打代碼方面,
a 加載驅動程式(要用Class.forName(“DriverName”))
用的時候會拋出一個例外(只要呼叫sql包的方法都會拋出一個例外,然后自己try - catch例外處理了就行)
try {
Class.forName("實作java.sql.Driver介面的一個類DriverName");
} catch (ClassNotFoundException e) {
System.out.println("驅動程式類沒有找到");
e.printStackTrace();
}
其中DriverName 根據連接的資料庫的種類不同所加載的驅動類不同,但不管是哪個類,它們
一定實作了 java.sql.Driver 介面,我們可以在驅動 jar 包里找到實作介面的相關類,
如 sqlserver 驅動類名為:com.microsoft.sqlserver.jdbc.SQLServerDriver,mysql
驅動程式類名為:com.mysql.jdbc.Driver根據自己的需要呼叫,
b 建立連接Connection
通過 DriverManager.getConnection()方法得到連接物件(這里也要try-catch處理例外,上面說了),該方法有三個引數url(統一資源定位符),資料庫用戶名,資料庫密碼,其中統一資源定位符為"jdbc:sqlserver://ip:1433;databaseName=dbName(是sql的)
" “jdbc:mysql:// ip:3306/dbName(是mysql的)” “jdbc:oracle:thin:@ ip:1521: dbName(是oracle的)”
c 創建Statement物件
Statement物件就像連接資料庫的車輛,處理sql陳述句,Statement 提供了兩個方法
executeUpdate(sql)與 executeQuery(sql)負責,前者 executeUpdate(sql)用來執行insert,update,delete 陳述句,后者執行 select 陳述句,由于executeQuery(sql)的知識還沒學,今天就著重說executeUpdate(sql)方法
String sql = "insert into lesson(lesName, context, score, hours) values( '醫學', '救人', 4, 58)";
sta = con.createStatement();
//4 執行sql
int rows = sta.executeUpdate(sql);
if (rows == 1){
System.out.println("op success");
}else{
System.out.println("op error");
}
d 關閉資源
代碼塊如下
finally {
try {
if (sta != null){
sta.close();
sta = null;
}
if (con != null){
con.close();
con = null;
}
這里講一下為什么是這樣寫,
1)
首先先關閉是sta再釋放con(sta是Statement介面創建的,con是Connection創建的,釋放的時候和創建的順序相反)
2)
放在finally塊中是因為,無論程式上面出什么錯了,都會執行finally塊,都會關閉創建的,
3)
呼叫close方法關閉,因為也是sql的一個方法,所以也會拋出例外,然后用try-catch方法處理例外,
4)
用if陳述句的原因是,如果前面程式出現例外,sta,con為空指標時,直接就判斷,不用讓它在執行一次,提高代碼效率
以上就是我現在對jdbc的認知總結,本人初學,有不對的地方請各位指出,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/305524.html
標籤:其他
上一篇:MongoDB入門基礎知識
