java使用JDBC连接oracle数据库总是出错java io 异常 : the newtwork adapter could not establish the connection
package staticUtil.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
static {
try {
// 1、加载oracle驱动程序
Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private static String url = "jdbc:oracle:thin:@99.1.1.32:1521:ORCL";
private static String user = "nmc";
private static String password = "123456";
public static Connection getConnection(){
Connection connection = null;
try {
// 2、获取连接
connection = DriverManager.getConnection(url, user, password);
// System.out.println("连接成功");
} catch (SQLException e) {
e.printStackTrace();
// System.out.println("连接数据库失败!!");
}
return connection;
}
}
各方面检查都没有错,到底什么原因呢?
[quote]是因为要不停地反复的访问数据库,所以没有关闭。
如果中间网络断了一下,如何实现让其不停地尝试连接数据库,直到连接成功。
谢谢解答。 [/quote]
如果想要不停反复访问数据库,也不需要用静态的方法
就算你用了静态的,也要关闭啊。。。 :?
好吧,既然你用了静态的,怎么又把connection定义成非静态的还是局部变量
[code="java"]Connection connection = null; //删除掉这行
//在getConnection()方法外面加上
private static Connection connection;
//方法里try之前先判断
if(connection==null){
try {
... ... ...
return connection;
} //如果当前已经有连接就返回当前的,没有再连新的[/code]
表示很无语
没有建立Oracle的网络监听啊!
DRIVER是这个:oracle.jdbc.driver.OracleDriver
不是:oracle.jdbc.OracleDriver
楼上的,那两个Driver一样用,好像只是简单的extends,
楼主请
telnet 99.1.1.32 1521
很怀疑你的端口根本就没开
不敢妄下断言!
这是最外层的Exception
把下面的错误信息发出来,才知道是你是因为监听,还是别的问题
话说,为啥你connection要用static,用完还不关
就算你用连接池,也不需要静态啊,连接池一建立人家就给你创建好一定数目的con,如果大量数据访问。。。 :?
是不是有防火墙?
看看他们怎么处理的
http://yang8787jie-126-com.iteye.com/blog/458249
和oracle的链接不对,不是driver不对,就是oracle的配置或者服务不对,还有可能是链接的问题吧。就这样
[quote]静态的那个只是方法吧,获取一个连接, connection不是静态的啊 [/quote]
事实是检验的真理
不要自己妄断,用我的方法运行看看就知道了
还有你所谓的方法是静态的
请问你的方法返回的是什么???不是一个[color=red]static Connection[/color]么???
不会再回复了