JDBC
資料庫連接紐帶
l Java Database Connectivity
l JDBC簡介
l SQL語言回顧
l JDBC編程基礎
l JDBC編程進階
l DataSourse and RowSet
Why JDBC?
為了訪問多種資料庫,統一資料庫介面ODBC。
Java 使用JDBC資料庫介面,訪問多種資料庫,帶給我們方便。但jdbc這種抽象不是特別完美,原因:必須將每種資料庫語言帶入java代碼中,移植起來不方便。
JDBC兩端:
對於我們java使用的一端是統一的, 不同資料庫介面不統一,串連不同資料庫使用不同資料庫類庫。
SQL語言回顧
l Select
Select * from T where …
l Insert
Insert into T values(…)
l Create
Create table T(…)
l Delete
Delete from T where…
l Update
Update T set t1 = ... and t2= … where t3 =…
l Drop
Drop table T
JDBC編程步驟
1. Load the Driver
a) Class.forName()|Class.forName().newInstance()|newDriverName()
b) 執行個體化時自動向DriverManager註冊,不需顯示調用DriverManager.registerDriver方法
2. Connect to the Datebase
a) DriverManager.getConnection()
3. Execute the SQL
a) Connection.CreateStatement()
b) Statement.executeQuery()
c) Starement,executeUpdate()
4. Retrieve the result data
a) 迴圈得取結果 while(rs.next())
5. Show the result data
a) 將資料庫中各種種類轉換為Java中的類型(getXXX)方法
6. Close
a) close the resultset. / closethe statement / close the connection
首先build path oracle classes12 jar包
例:
import java.sql.*;public class TestJDBC {public static void main(String[] args) {ResultSet rs = null;Statement stmt = null;Connection conn = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");//new oracle.jdbc.driver.OracleDriver();conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");stmt = conn.createStatement();rs = stmt.executeQuery("select * from dept");while(rs.next()) {System.out.println(rs.getString("deptno"));System.out.println(rs.getInt("deptno"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if(rs != null) {rs.close();rs = null;}if(stmt != null) {stmt.close();stmt = null;}if(conn != null) {conn.close();conn = null;}} catch (SQLException e) {e.printStackTrace();}}}}