J2EE技術規範(二)——JDBC
一、瞭解JDBC
(1) JDBC是以統一方式訪問資料庫的API
(2) JDBC提供:
獨立於平臺的資料庫訪問
位置透明
對專有資料庫的問題時透明的
二、瞭解JDBC驅動程式
(1) JDBC Drivers是實現資料庫操作的類
(2) Drivers分成兩類:
2-層——客戶直接和資料庫會話
3-層——客戶與代表資料庫的中間層(WebLogic Server)會話
其實也就是:兩層架構直接與資料庫進行處理
三層架構載入資料庫的中間層
這些跟.net幾乎沒什麼差別。我們繼續來看一個圖:
我們看這個圖有什麼想發?
第4種:居於Java特色的。不需要安裝軟體和客戶端;跟位置與平臺是沒有關係的。,
第1、2、4:都是兩層的型別,直接連線到資料庫的
第3種:基於NetworkServer集中式的監控,遮蔽丟不同的平臺。在1、2、4的基礎上,通過webserver來連線的一種資源。是一種特殊的jdbC的型別
三、使用JDBC直接訪問資料庫
(1) 直接訪問資料庫由下列組成:
載入JDBC驅動器類
我們看一下直接連線資料庫的示例:
(2) 使用基本的JDBC命令
import java.sql.*; try{ class.forName("com.pointbase.jdbc.jdbcUniversalDriver"); Connection con=DriverManager.getConnect("jdbc:pointbase;//server:port/MyDatabase"); Statement stmt=con.createStatement(); String sql="select * from mytable"; ResultSet res=stmt.executeQuery(sql); while(res.next()){ String col1=res.getString("MYCOLUMN1"); int col2=res.getInt("MYCOLUMN2"); }catch(Exception e){...} }
四、使用多層(Type3)Drivers
要使用多層體系結構,必須至少配置一個連線池(Connection Pool和一個數據源(DataSource)
五、連線池Connection
連線池:
消除頻繁建立連線所需的負載
是用於管理資料庫連線的管理物件
提供可共享,安全的連線
六、資料來源Data Sources
Data Sources是:
從連線池中提供連線的被管理的工廠物件
繫結到JNDI並使用管理控制檯配置
七、我們通過資料來源Data Sources訪問資料庫
(1) 使用DataSource:
先在JNDI中查詢到它
然後從DataSource獲得一個連線
使用資料來源連線資料庫的示例:
import java.sql.*;import javax.sql.*;import javax.naming.*;...
try{
context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("TestDataSource");
Connection con=ds.getConnection();
Statement stmt=con.createStatement();
String sql="SELECT * FROM MYTABLE";
ResultSet res=stmt.executeQuery(sql);
While(res.next()){
String col1=res.getString("MYCOLUM1");
...
}
con.close();
}catch(Exception e){...}
八、Statements和Prepared Statements
(1) Statement物件含有與資料庫互動的SQL查詢或更新語句
使用Statement物件查詢資料庫的示例:
Statement stmt=con.createStatement();
String sql="SELECT * FROM MYTABLE";
ResultSet res=stmt.excuteQuery(sql);
使用PreparedStatement物件查詢資料庫的示例:
String sql="SELECT * FROM MYTABLE WHERE COL1=? AND COL2=?";
PreparedStatement pStatement=con.prepareStatement(sql);
pStatement.setString(1,searchVariableString);
pStatement.setInt(2,searchVariableInt);
ResultSet rs=pStatement.executeQuery();
這只是初步瞭解,還需要應用到專案當中去呀。