[英]oracle database connection in java
我是java的新手,並且編寫了以下內容:
package mypackage;
public class DBconnection {
Connection con = null;
public Connection getConnection() throws Exception, SQLException
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@zzz:1521:zzz","zzz", "zzz");
}
catch(Exception e)
{
}
return con;
}
public void removeConnection() throws SQLException
{
con.close();
}
}
當我在jsp頁面中訪問以上代碼時,我寫了以下內容:
DBconnection dbconnect = new DBconnection();
dbconnect.getConnection();
我想設置dbconnect.con.prepareStatement ......(“ sql query here”); //但由於con在mypackage.DBconnection中不是公共的,因此出現錯誤。 不能在包外訪問
dbconnect.con無法訪問,為什么???? 我在上面的代碼中公開聲明了變量con。 由於con在mypackage.DBconnection中不是公共的,因此出現錯誤; 無法訪問外部包,如何解決此問題??? 請幫我
在上面發布的代碼中, con
是程序包可見的而不是公共的。 這就是為什么您cannot be accessed outside package
消息的原因。 要公開,你必須寫
public Connection con = null;
請注意,如果您只是要打電話
dbconnect.con.prepareStatement
您可能最終會遇到NullPointerException
,因為con
僅在getConnection()
方法中初始化。 所以我建議使用您創建的吸氣劑
dbconnect.getConnection().prepareStatement
當然,將需要調整getter以僅在con
仍然為null
時創建新連接。 否則,它可以直接返回con
。 然后,在關閉連接集con
后將removeConnection
設置為null
,否則在調用removeConnection
之后調用getConnection
將返回一個關閉的連接,這是毫無用處的
將此代碼移至構造函數
public DBconnection(){
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@zzz:1521:zzz","zzz", "zzz");
}
catch(Exception e)
{
}
}
然后創建一個對象並將其共享給所有應用程序類,當您要使用connection
只需從其對象調用getConnecion()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.