编写程序以从数据库中确定管理级别ID。我一遍又一遍地通过网站使用这种相同的连接方法,但它不会挂在其他任何地方。但是,这些方法并没有隐藏在实际的类中。是否有任何理由将此特定代码放入java类会使其挂起?
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
public class connection
{
public Connection getDBConnection()
{
java.sql.Connection conn=null;
try
{
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection("stuff"); //Hangs here for like 2 seconds
}
catch (Exception e)
{
e.printStackTrace();
}
return conn;
}
}
重申一下,我通过网站直接使用jsp(jsp中没有类),但对于这个特定的段,我将其实现为类中的方法。这似乎是唯一挂起的地方。另外,如果你可以给我特定的导入来使数据库连接工作,那么我可以摆脱其中的一些“。*”...这将是非常棒的。 感谢
编辑:为了更清晰,我创建了对象X,在对象X中创建了调用此方法的连接类对象。
所以,
someClass whatever = new someClass();
Connection conn = null;
conn = whatever.getDBConnection(); //hangs
答案 0 :(得分:1)
你在其他地方汇集连接吗?如果您每次创建新连接,那么可能需要几秒钟。
答案 1 :(得分:1)
另外,为什么总是注册OracleDriver?
您应该只注册一次驱动程序。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
public class connection
{
static {
try {
DriverManager.registerDriver(new OracleDriver());
}
catch (SQLException excep) { // log exception }
}
public Connection getDBConnection()
{
java.sql.Connection conn=null;
try
{
conn = DriverManager.getConnection("stuff"); //Hangs here for like 2 seconds
}
catch (Exception e)
{
e.printStackTrace();
}
return conn;
}
}