【问题标题】:Connecting java and oracle data base连接java和oracle数据库
【发布时间】:2016-12-11 15:52:13
【问题描述】:

我是 JAVA 新手,我正在尝试连接我的 java 代码和 oracle 数据库,我按照一些教程进行操作,但没有成功。这是我的代码。

  package probasem;



import java.sql.*;

public class Jedan {

     public static void main(String[] args) {

         try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");

            Statement st = con.createStatement();
            String sql  = " select * from employees";
            ResultSet rs = st.executeQuery(sql);
                    while (rs.next())
                        System.out.println(rs.getInt(1) +  " "  + rs.getInt(2));

con.close();                        
        } catch (Exception e) {


            System.out.println(e);
        }

    }
}

它抛出了一个异常:
java.sql.SQLException: 无法转换为内部表示

当我将本地主机更改为 3036 时,我得到了这个:

java.sql.SQLRecoverableException:IO 错误:网络适配器无法建立连接

【问题讨论】:

  • 帮助我们帮助您 - 分享您遇到的异常
  • java.sql.SQLException: 无法转换为内部表示和
  • 我没有看到任何真正的问题,除了非封闭语句和结果集。所以,我猜第 1 列和第 2 列中的数据都不是整数。
  • 当我将本地主机更改为 3036 时,我得到这个:java.sql.SQLRecoverableException: IO Error: The Network Adapter could not build the connection
  • @Alex13 请edit 您的问题并粘贴整个异常,并指出是哪一行引起的。

标签: java sql database oracle


【解决方案1】:

将代码改成如下:

System.out.println(rs.getInt(1) + " " + rs.getString(2)); 

因为第二列是名字并且是 varchar2 类型。

此外,我建议使用列名而不是列位置,因为它们使代码不易出错,如下所示:

rs.getString("firstname");

【讨论】:

  • 我复制了,不记得改了。非常非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2011-05-21
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
相关资源
最近更新 更多