StringBuffer str = new StringBuffer("select * from menu where parentid=1 and mid<>1 order by parentid");

List list = new ArrayList();
ResultSet rst = null;
DataBaseConnection dbc = null;
PreparedStatement pstm = null;

try {
dbc = new DataBaseConnection();
pstm = dbc.getConnection().prepareStatement(str.toString());

rst = dbc.query(pstm);

while(rst.next()){
System.out.println(rst.getString("name"));
}
RST中没有任何值数据库 ORACLE 10G

解决方案 »

  1.   

    不知道你的是怎么封装的查询,有问题一定是dbc.query(pstm)没有得到正确的结果集
    为什么不直接查询呢?
    try {
    dbc = new DataBaseConnection();
    pstm = dbc.getConnection().prepareStatement(str.toString());
    rst = pstm.executeQuery();
    while(rst.next()){
    System.out.println(rst.getString("name"));
      

  2.   

    public ResultSet query(PreparedStatement pstm) throws SQLException,
    Exception { this.rst = pstm.executeQuery();
    return rst;
    }这是后台查询
      

  3.   

    封装这个方法好像没啥意义啊
    你的sql在工具里能查出东西吗?
    public ResultSet query(PreparedStatement pstm) throws SQLException,
    Exception {
        return pstm.executeQuery();
      

  4.   

    PLSQL DEVELOPER 能查出来,结果正确
      

  5.   

    直接查询rst = pstm.executeQuery(); 
    有结果吗?
      

  6.   

    直接用JDBC的查询试试,就如楼上几位所说
      

  7.   

    打印出SQL语句,在数据库中查询一下,试下结果如何?是不是和你想要的一致?
      

  8.   

    PreparedStatement支持这种方式的查询吗?
    select * from menu where parentid=1 and mid <>1 order by parentid
      

  9.   

    先把语句输出下 放到查询分析器里看看有没有值
    dbc.query(pstm); 是什么玩意?
      

  10.   

    用监控软件监视一下,看看是否真的执行sql语句了.
      

  11.   

    select * 改成select name
    没用过,LZ可以试试
      

  12.   

    改能NAME  不行
     在PLSQL DEVELOPER中能出来结果
      

  13.   

    mid <>1
    你把这个删了看好使不
      

  14.   

    一样,都是出不来换成STATEMENT 也是出不来会不会是我的MYECLIPSE的问题
      

  15.   

    如果没有报错,我猜是前面插入的数据没有提交
    如果用PLSQL DEVELOPER插入数据,默认是不commit的
      

  16.   

    对了,PLSQL DEVELOPER 确实没有COMMIT