jdbc作用

不設限發表於2011-12-10
一.JDBC的用途是什麼?
jdbc分為三個用途:
a.與資料庫進行連線
b.傳送sql語句
c.處理結果
Connection conn = DriverManager.getConnection(url,user,password);
Statemtnt st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()){...}


二.jdbc訪問資料庫步驟
1.載入驅動   將jar包加入工程,Class.forname("");
2.建立連線   使用connection物件的getConnection方法 
              url(jdbc:oracle:thin:@ip:埠:資料庫sid),
              user,password,如果要手動提交,呼叫conn.setAutoCommit(false)
3.建立statement物件  一個statement物件只能開啟一個resultset,如果有兩個
              同樣結果的結果集交叉訪問,這兩個結果集必定為
              兩個不同的statement物件所建立,如果在開啟一個
              新的結果集的時候存在一個已經開啟的結果集,
              則這個已經存在的結果集會被隱式關閉
4.執行查詢或更新 a.查詢操作: executeQuery(sql)
                  b.更新操作: executeUpdate(sql)
                  c.批處理操作:executeBath() 一次執行多個任務比較快
5.處理結果    1.ResultSet中行的第一列索引是1,不是0,
                使用列名作為查詢條件資料是大小寫敏感的
              2.可以設定結果集是否回滾,可否更新
6.關閉連線    按照 ResultSet ,Statement,Connection順序來關閉


三.preparedStatement(預編譯的statement)
優點:提高sql執行效率
缺點:除錯比較麻煩


四.使用CallableStatement在java中呼叫資料庫儲存過程,函式,包
CallableStatement csmt = conn.prepareCall("{call [包名].儲存過程名}");
CallableStatement csmt = conn.prepareCall("?={call [包名].函式名}");
如果要得到返回列表,在包中定義一個ref遊標,通過儲存過程返回遊標,
在java中通過OracleTypes.CURSOR接收結果集