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