jdbc连接oracle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc连接oracle相关的知识,希望对你有一定的参考价值。

jdbc:oracle:thin:@192.168.1.100:1521:test //OK
jdbc:oarcle:thin:@127.0.0.1:test //异常
jdbc:oracle:thin:@localhost:test //异常

使用Java连接oracle数据库时,URL中使用localhost或是127.0.0.1都不行,只能使用真实IP地址(192.168.1.100),这是怎么回事?我是初学者,希望大家说的详细一点!
jdbc:oarcle:thin:@127.0.0.1:1521:test //异常
jdbc:oracle:thin:@localhost:1521:test //异常
不小心写错了!不是端口的问题!
异常:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
难道百度就没有高手了?

wwwqvod,按你说的配制过了。不过没有什么变化!在使用Java连接数据库时,URL中只能使用192.168.1.100,而不能使用127.0.0.1或是localhost。
=============
回 wwwqvod
我的电脑上不只安装了Oracle,还安装了其它数据库,其它数据库都可以使用localhost或127.0.0.1之类的URL,所以不是DNS的问题。
=============
windowsXP系统,Oracle10g

关键是配置 oracle 网络服务名test的时候你ip地址指向的是192.168.1.100端口号:1521
如果你要使用127.0.0.1或者localhost的端口:1521,就把test配置成127.0.0.1或者localhost

配置网络服务名的步骤:
1.开始-程序-Oracle—> Configuration and Migration Tools —> Oracle Net Configuration Assistant
2.监听程序配置/命名方法配置/本地Net服务名配置/目录使用配置 中选择"本地Net服务名配置" —>下一步
3.添加/重新配置/删除/重命名/测试 中选择 "添加" —>下一步
4.Oralce8i或更高版本数据库或服务/Oralce8发行版8.0数据库或服务 中选择"Oralce8i或更高版本数据库或服务" —>下一步
5.服务名:如:test —> 下一步
6.选择用语要访问的数据库的协议TCP/TCPS/IPC/NMP一般情况下选择"TCP" —>下一步
7.主机名可以是机器的IP(如:127.0.0.1/localhost),或机器名("我的电脑" —> 右键"属性" —>"计算机名" —>找到"完整的计算机名称" —>复制 '假设为IMTI0220,如果后面有个. ,需要去掉');端口号可以用默认的 1521,亦可以自己修改 —>下一步
8.选择"是,进行测试" —>下一步
NOTICE:9.如果测试失败,就按照提示进行修改,如:显示"正在连接...ORA01017:invalid username/password/;logon denied 测试未成功" 点击"更改登录" —>用户名和密码 就按照自己的需求进行修改,—>(此处会自动进行测试),如果显示"正在连接...测试成功。" —> 下一步
10.Net服务名:填写你自己所需要的名称,如:text —> 下一步
11.配置第一个网络服务到此结束,选择"否","完成"就退出了,如果还需要配置一个就选择"是(继续配置另外一个网络服务名)"

那就有可能是DNS解析的问题了,打开:
C:\WINDOWS\system32\drivers\etc\hosts 看下有没有

127.0.0.1 localhost 这行

问下你的操作系统是什么,oracl是什么版本的
参考技术A 一般是利用jdbc:oracle:thin:@127.0.0.1:test
jdbc:oracle:thin:@localhost:test 是会报异常的.
而你的oracle单词打错了..
参考技术B 断网试试。。。 参考技术C jdbc:oracle:thin:@localhost:1521:test 参考技术D 检查SQL Net Listener的配置 第5个回答  2010-03-17 你访问的是别人的机子上的ORACLE?。。。

jdbc连接oracle语法

public class LangDemo {
  public static void main(String[] args) throws Exception{
      try {
                 //加载驱动
                Class.forName("oracle.jdbc.driver.OracleDriver");
                //创建连接
                Connection   cn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE","hh","hh");
                Statement sm=cn.createStatement();
                //获得结果集
                ResultSet rs=sm.executeQuery("select name,nickname,id from a");
                //遍历结果集
                 while(rs.next()){
System.out.println("name:"+rs.getString(1));//rs.getString(“name”)
System.out.println("nickname:"+rs.getString(2));  //rs.getInt(“id”)                                
}
        } catch (Exception e) {
                   e.printStackTrace();
        }finally{   // rs.close();
                               // conn.close();
                 }
    }
}
public class LangDemo {
  public static void main(String[] args) throws Exception{
    Connection con = null;// 创建一个数据库连接
       PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
       ResultSet result = null;// 创建一个结果集对象
     try
      {
        Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
        System.out.println("开始尝试连接数据库!");
        String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE"; // 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
        String user ="system";// 用户名,系统默认的账户名
        String password = "147";// 你安装时选设置的密码
        con = DriverManager.getConnection(url, user, password);// 获取连接
        System.out.println("连接成功!");
        String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
        pre = con.prepareStatement(sql);// 实例化预编译语句
        pre.setString(1, "张三");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
        result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
        while (result.next())
            // 当结果集不为空时
            System.out.println("学号:" + result.getInt("id") + "姓名:"
                    + result.getString("name"));
     }
      catch (Exception e)
       {
            e.printStackTrace();
        }
       finally  {
            ……..
        } 
    }
}

 

以上是关于jdbc连接oracle的主要内容,如果未能解决你的问题,请参考以下文章

jdbc连接oracle

java使用jdbc连接oracle数据库怎么关闭连接

如何使用JDBC连接oracle数据库

JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库

jdbc 连接 oracle rac

JDBC连接Oracle