日期:2014-05-20  浏览次数:20818 次

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测试连接先