下面是使用JDBC的一般流程:
1. 載入某個資料庫的驅動(Driver類),通常使用Class.forName(“驅動的類名“);
2. 串連資料庫Connection con = DriverManager.getConnection(url,username,password);
3. 得到會話――Statement stmt = con.createStatement();
4. 執行操作――Result rs = stmt.executeQuery(“SQL查詢語句”);
5. 處理結果――
while(rs.next()){
String col1 = rs.getString(1);
……
}
整個JDBC中可以變化的一般是:
1. 可以由Connection對象建立Statement、PreparedStatement和CallableStatement建立三種類型的Statement。
2. 可以建立多種類型的ResultSet:支援單向移動和個自由移動;可更新的和不可更新的;支援不同等級的交易的…..
3. 資料輸入的批處理。
4. 結果集中特殊類型(Blob、Clob、Arrary和Ref、Struct)列的操作。
5. 這些特殊類型的錄入資料庫。
6. javax.sql包中特殊結果集(CachedRowSet、JdbcRowSet、WebRowSet)的操作。
7. 其它的就是一個DataSource了,一個J2EE中的被管理對象 .
import java.sql.*;
public class jdbc{
String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String theUser="admin";
String thePw="manager";
Connection c=null;
Statement conn;
ResultSet rs=null;
public jdbc() {
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
c = DriverManager.getConnection(dbUrl,theUser,thePw);
conn=c.createStatement();
}catch(Exception e){
e.printStackTrace();
} }
public boolean executeUpdate(String sql) {
try {
conn.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
} }
public ResultSet executeQuery(String sql) {
rs=null;
try {
rs=conn.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public void close() {
try {
conn.close();
c.close();
} catch (Exception e) {
e.printStackTrace();
} }
public static void main(String[] args) {
ResultSet rs;
jdbc conn = new jdbc();
rs=conn.executeQuery("select * from test");
try{
while (rs.next()) {
System.out.println(rs.getString("id"));
System.out.println(rs.getString("name"));
}
}catch(Exception e) {
e.printStackTrace();
}}}