jdbc连oracle在eclipse中没报错,但没有显示查询???服务开了监听也开了,驱动和链接都有 为什么呢?急啊

解决方案 »

  1.   

    代码都没列出来,完全无从下手。另外重点检查你catch的地方,打印了错误信息没有。
      

  2.   

    去数据库试试你的sql到底能不能查出数据多添几条输出语句,看程序走到哪了输出关键变量的值判断
      

  3.   


    import java.sql.*;
    public class student {

    public static void main(String[]args) {
    Connection ct=null;
    Statement sm=null;
    ResultSet rs=null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    System.out.println("ok");
    ct=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:student","scott","m123");
    System.out.println("ok");
    sm=ct.createStatement();
    try {
    rs=sm.executeQuery("select*from gg");
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    while(rs.next()){
    System.out.println("id:"+rs.getString(2));

    }


    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    if(rs!=null){try {
    rs.close();
    if(sm!=null){sm.close();}
    if(ct!=null){ct.close();}
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }}
    }




    }

    }

      

  4.   

    在sql*plus上可以查的到我的表 但在eclipse中找不到,请大虾助我
      

  5.   

    第一个ok都没输出来?那说明Class.forName("oracle.jdbc.driver.OracleDriver");就出错了啊。
      

  6.   

    但是当我把登陆名改为system后可以显示ok啊
      

  7.   


    那说明你之前看漏了吧。
    rs=sm.executeQuery("select*from gg");
    要有schema(或者理解为该表的所有者帐号名):
    rs=sm.executeQuery("select * from scott.gg");
      

  8.   

    但我用system时出现报错信息如下:
    ok
    ok
    java.sql.SQLException: ORA-00942: table or view does not exist at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:622)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:111)
    at oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java:350)
    at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:895)
    at oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java:382)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:985)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1124)
    at student.main(student.java:18)
    Exception in thread "main" java.lang.NullPointerException
    at student.main(student.java:23)
    但但我按你说的改为scott.gg就又不报错了
    纠结死了撒
      

  9.   

    很正常啊,Oracle查询表的时候,如果你没有指定Schema,就找当前用户下的表。而你的表gg,并不是在system这个用户下建立的,当然找不到。如果你能用scott帐号连接,那么Select中就可以不用带Schema。
      

  10.   

    试试看这几句:
    rs=sm.executeQuery("select count(*) from scott.gg");
    rs.next();
    System.out.println("表记录数:" + rs.getString(1));
      

  11.   

    while(rs.next()){
    System.out.println("id:"+rs.getString(2));}
    这里出问题了吧?
      

  12.   

    ORA-00942:是表示ORACLE木有这张表啊……你看清楚来……
    看着控制台打印错误,自己多看看找找问题