簡體   English   中英

Java中的oracle數據庫連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM