今天做了一个测试:做了一个简单的查询每次都打开关闭数据库连接,循环执行10000次可以达到2000次左右就抛出如下异常:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.test.TestMain.closeConn(TestMain.java:31)
at com.test.TestMain.main(TestMain.java:15)
Exception in thread "main" java.lang.NullPointerException
at com.test.TestMain.closeConn(TestMain.java:42)
at com.test.TestMain.main(TestMain.java:15)
用的是本地数据库,监听也开着,这是为什么呢?请好心大侠帮忙解决一下!小弟不胜感激。
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.test.TestMain.closeConn(TestMain.java:31)
at com.test.TestMain.main(TestMain.java:15)
Exception in thread "main" java.lang.NullPointerException
at com.test.TestMain.closeConn(TestMain.java:42)
at com.test.TestMain.main(TestMain.java:15)
用的是本地数据库,监听也开着,这是为什么呢?请好心大侠帮忙解决一下!小弟不胜感激。
解决方案 »
- Swing中的JTable中添加Checkbox不能选中
- java一行一行读取文件 怎么从某一行倒过来读呢
- 在点击窗体(JFrame)的标题条上的关闭按钮时,有什么办法可以使窗体不关闭——紧急求助大散分
- 求解hibernate 和 ibatis区别,hibernate效率低的主要原因在哪?
- 有没有HTML的帮助啊
- 只求您给我指条路,告诉我怎么做,我就给您100分!我真的很郁闷!
- jndi 问题,请高手指点? 散分
- 请教Java语法问题
- 汉字显示问题,求助!
- vaj3.5 疑难, 真失败,我连续两次都没有发送成功
- 急!!!在eclipse中,如何对某个html不做验证?
- java 怎样实现限制访问某个网址?
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class TestMain { public static void main(String[] args) {
for(int i = 0; i < 10000; i++) {
System.out.println(i);
closeConn();
}
}
public static void closeConn(){
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger");
pstm = conn.prepareStatement("select count(*) from emp");
rs = pstm.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt(1));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
rs.close();
pstm.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
毕竟数据库应该安装在服务器机上的。每使用完一次连接后你加上Thread.sleep(50)中止一下,看是不是你电脑反应不过来造成的?