我用的是oracle 10g xe数据库
查询方法是这样写的 public ResultSet executeQuery(String sql){//执行查询
Statement stmte=null;
ResultSet rs = null;
try{
conn=connPool.getConnection();
stmte=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
stmte=conn.createStatement();
rs=stmte.executeQuery(sql);
}catch(SQLException ex){
System.out.println("查询错误!"+ex+"----on:"+sql);
connPool.returnConnection(conn);
conn=null;
return null;
}finally{
System.out.println("ok");
connPool.returnConnection(conn);
conn=null;
}
return rs;
}
在使用String sql="select table_name from user_tables";
rs=cdb.executeQuery(sql);可以查到数据,也就是表名
但是我将sql换成String sql="select ws_rep_table.rep_table_num,ws_rep_table.rep_table_name,"+
"ws_domain.domain_num,ws_dataitem.dataitem_num,ws_dataitem.dataitem_name,"+
"ws_dataitem.ctop,ws_dataitem.cleft,ws_dataitem.cwidth,ws_dataitem.cheight "+
"from ws_rep_table,ws_domain,ws_dataitem where ws_rep_table.rep_table_num=ws_domain.rep_table_num and "+
"ws_domain.domain_num=ws_dataitem.domain_num and ws_rep_table.rep_table_num ="+ table_num;就不行了,什么都没查到,这是为什么?

解决方案 »

  1.   

    试试这个sql在数据库直接执行会有结果吗。
      

  2.   

    1,给三个表都用别名,字段前的表名也改成对应的别名,
    2,在rs=cdb.executeQuery(sql);
    设置一断点,把java执行后的sql复制出来,拿到sql plus中执行一下,
      

  3.   

    TO plplum:
    无异常信息,程序能够执行,就是得不到结果
      

  4.   

    你在sqlplus里执行 没显示结果 那是你sql语句的逻辑写的不对吧