import java.sql.*;
Jbuilder正確連接 oracle Arrayi需要注意的幾個問題
oracle8以上的應該都使用classes12.jar文件作為jdbc驅動;
正確設置windows的classpath和jbuilder中的enterprise setup 、configure libraries,將casses12.jar路徑正確添加到上述需要設置的地方;
進入database pilot,在database pilot中,file---new 在driver列表中如果oracle的驅動是紅色的,就說明你的oralce在jb中加載失敗;
若③沒有錯,則新建一個url:jdbc:oracle:thin:@(yourhostname):1521:(your sid)
連接數據庫的Username/password
注:大部分站友的jbuilder連接oracle的問題都是由於沒有正確配置classpath等引起的。
使用非XA方式連接ORACLE數據庫
在windows下配置Oracle_XA時要注意兩點:
#ORACLE 10
Oracle_XA;xaosw;%ORACLE_HOME% dbms oraxa10.lib%ORACLE_HOME%precompibmsvcorasql10.lib
#oracle Array
Oracle_XA;xaosw;%ORACLE_HOME% dbms oraxaArray.lib%ORACLE_HOME%precompibmsvcorasqlArray.lib
Unix下
Oracle_XA:xaosw:....
第一:在windows 下 ORACLE_XA 和xaosw後面的是分號";",不是冒號":"
第二:上面的這些LIB寫在一行上,中間用空格分開,如果沒有在系統的環境變量中設置ORACLE_HOME,就寫絕對路徑。
JDBC操作ORACLE數據庫時出現‘java.sql.SQLException:IO異常,不在流模式下’
用OracleStatment,,不要用java.sql.Statment
如果對已有連接進行setAutoCommit失敗,則關閉該連接並重新建立一個連接
到ORACLE站點下載一個最新的JDBC Driver,如果操作LOB類型,用ORACLE自帶的接口和類
weblogic連接oracle問題:The Network Adapter could not establish the connection
可能是服務器的監聽停掉了,是數據庫的問題,與應用無關;應該先檢查一下oracle是否正常,用sql*plus連接一下數據庫,看能否正常連接;
2 //用jdbc連接數據庫
3 public class zz {
4
5 /**
6 * @param args
7 */
8 public static void main(String[] args) {
9 // TODO Auto-generated method stub
10
11 try
12 {
13 //加載驅動
14 Class.forName("oracle.jdbc.OracleDriver");
15 Connection con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORACLE","scott","m123");
16 Statement sm=con.createStatement();
17 ResultSet rs=sm.executeQuery("select * from emp");
18 System.out.println("用戶名: "+"職位:"+"上司編號: "+"入職時間: ");
19 while(rs.next())
20 {
21
22 System.out.println(rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5));
23
24 }
25 rs.close();
26 sm.close();
27 con.close();
28 }
29 catch(Exception e)
30 {
31 e.printStackTrace();
32 }
33
34 }
35
36 }
eblogic中使用Oracle連接池及Oracle備份的注意事項
使用HP-UNIX,Weblogic 8.1,Oracle Array.2.0.5
配置了一個普通的連接池,驅動程序采用oracle的Oracle’s Driver(Thin) version Array.0.1, Array.2.0
錯誤情況:
結果使用數據庫連接池時報錯,說沒有連接池資源了。實際上數據庫的連接池完全空閒,並且測試也是對的,Oracle也是正常可以連接、使用的。
問題根源:
通過層層排錯,發現原來後台在使用Oracle的exp備份一個只有同義詞的用戶,導致exp進程僵死。
殺死exp、重啟Oracle等無法解決問題,最終重啟UNIX,禁止備份只有同義詞的用戶,問題解決。
總結:
應該是OracleArray的exp BUG導致連接池問題,不要使用exp倒出同義詞