繁体   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