掌握數據庫開發是java工程師的基本要求,而JDBC是數據庫開發的基礎,通過JDBC可以實現Java程序對后端數據庫的訪問。
雖然現在大多使用MyBatis,但明白JDBC的工作流程,對初學者來說還是非常必要的,學會之后能夠更快速的上手MyBatis。下面我就介紹一下JDBC的基礎知識。注意:學習JDBC需要有Java基礎以及數據庫基礎。
總的來說,使用JDBC的流程大概分為:
1. 裝載驅動程序
2. 建立與數據庫的連接
3. 執行SQL語句
4. 獲取執行結果
5. 清理資源
接下來逐步詳細說明:
1.裝載驅動程序
說到裝載驅動程序,就不得不說JDBC中的Driver類、DriverManager類。Driver類是一個接口,定義了各個驅動程序都必須實現的功能,是驅動程序的抽象。而DriverManager類是Driver類的管理類。
想要裝載驅動程序,我們就要用Class.forName(DriverName)向DriverManager注冊驅動程序。DriverName就是響應數據庫驅動的名稱。推薦用maven管理驅動程序,免去到官網下載的麻煩。例如加載mysql驅動:
Class.forName(“com.mysql.jdbc.Driver");
2.建立與數據庫的連接
想要建立與數據庫的連接,就要通過DriverManager類中的getConnection()方法調用驅動程序。
getConnection()方法返回的是一個JDBC Connection對象。Connection對象其實代表的是Java應用程序對后端數據庫的一條物理鏈接。基于這條鏈接,我們可以執行SQL語句。Connection對象常用的方法就是createStatement()方法,這個方法用來創建Statement對象。
調用getConnection()方法需要傳入三個參數,分別是URL、UserName、PassWord。注意:使用getConnection()可能會拋出異常,所以這里要捕獲異常。
例如:
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/數據庫名","root","root");
URL為相應數據庫的地址,包含協議、子協議、子名稱三部分,其中自名稱又包括主機、端口、數據庫名等。例如:“jdbc:mysql://127.0.0.1:3306/數據庫名”。
UserName則是你部署相應數據庫時設置的用戶名,一般都是“root”。
PassWord就是你部署相應數據庫時設置的密碼。
3.執行SQL語句
要執行SQL語句,首先要用Connection連接創建Statement對象。Statement對象,說到底就是一個SQL容器,這個容器可以承載一些SQL語句。
然后調用executeQuery()方法或execute()方法執行SQL語句。其中,executeQuery()方法可執行查詢操作,execute()方法更新、添加、刪除等操作。執行后返回int值或ResultSet對象。ResultSet是數據庫結果集的數據表。
例如:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select name from user");
4.獲取執行結果
若返回的是ResultSet對象,則要用循環取出ResultSet對象中的數據。因為ResultSet對象具有指向其當前數據行的指針。最初,指針被置于第一行之前。next方法可以將指針移動到下一行;使用該方法是會true或false(若沒有下一行則返回false),所以可以在while循環中使用它迭代結果集。(ResultSet對象的其他常用方法自行搜索其他資料,這里就不贅述了。)
例如:
while(rs.next()){
System.out.println(rs.getString("name"));
}
5.清理資源
在finally{ }方法中清理資源。
例如:
finally{
try{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException){
//ignore
}
}