当前位置: 代码迷 >> J2SE >> JDBC操作解决方案
  详细解决方案

JDBC操作解决方案

热度:85   发布时间:2016-04-24 02:00:10.0
JDBC操作
代码
Java code
import java.sql.Connection;import java.sql.DriverManager;public class conn_demo {    //数据库驱动程序名    public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";    //数据库地址    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:192.168.1.102";    //数据库用户名    public static final String DBUSER = "scott";    //数据库密码    public static final String DBPASS = "tiger";    public static void main(String[] args){        try{            Connection conn = null;            //加载数据库            Class.forName(DBDRIVER).newInstance();            //连接数据库            conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);            System.out.println(conn);            //关闭数据库            conn.close();        }catch(Exception e){            e.printStackTrace();        }    }

结果连不上,出现以下错误:
Java code
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)    at java.sql.DriverManager.getConnection(Unknown Source)    at java.sql.DriverManager.getConnection(Unknown Source)    at conn_orcl.conn_demo.main(conn_demo.java:22)

怎么回事啊?

------解决方案--------------------
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:192.168.1.102";

这个URL怎么看都不正确吧?最后那个IP地址应该是数据库实例名吧,比如:
jdbc:oracle:thin:@127.0.0.1:1521:orcl

另外你确定数据库启动了么?能否 telnet localhost 1521 ?
------解决方案--------------------
探讨

public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:192.168.1.102";

这个URL怎么看都不正确吧?最后那个IP地址应该是数据库实例名吧,比如:
jdbc:oracle:thin:@127.0.0.1:1521:orcl

另外你确定数据库启动了么?能否 telnet localhost……

------解决方案--------------------
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
这个错误确实就是网络问题,而且甚至还没到找不到数据库实例名称的环节。

我建议你还是命令行(CMD)执行:telnet localhost 1521
如果当场就黑屏了,说明端口是OK的;否则可能是监听器没开或其它原因。
------解决方案--------------------
我也出现了类似的错误!!以下纯属个人观点:
1.有人说把localhost换成IP地址就可以了 
你可以试下 好像是因为什么文件的问题
2.如果不行看下oracle的监听是不是打开了 有时候打开了刷新下就会关闭你试下!
如果是这种情况的话可能是因为G:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
这个文件夹下 listener 和tnsnames 里面的(HOST = XP-201112051028)(PORT = 1521))写的不 一样造成的改成一样的就行(谨慎修改)
3.如果以上都不行的话就只能重新安装数据库


希望可以帮到你!!
------解决方案--------------------
第一,URL肯定不对,写法参考楼上
对于oraclo这种东西,尽量不要用localhost这种命名,它不是根据系统host转换的,请指定ip地址

第二,用telnet测试连接先
  相关解决方案