Java jlabels不是';t在jLabel中显示结果

Java jlabels不是';t在jLabel中显示结果,java,plsql,oracle10g,Java,Plsql,Oracle10g,我想在jlabels中显示用户名、名称和密码,但它不显示。。。我在数据库中有一个名为search\u admin的存储函数。当我执行程序时,没有显示错误,但是jlabels没有显示resultset数据。这一行似乎耗尽了resultset: try { Statement stmt = conn.createStatement(); String sql = "CREATE OR REPLACE FUNCTION search_admin(p_username IN varchar2)

我想在
jlabels
中显示用户名、名称和密码,但它不显示。。。我在数据库中有一个名为search\u admin的存储函数。当我执行程序时,没有显示错误,但是
jlabels
没有显示
resultset
数据。

这一行似乎耗尽了resultset:

try {
  Statement stmt = conn.createStatement();
  String sql = "CREATE OR REPLACE FUNCTION search_admin(p_username IN varchar2) \n"+
               "RETURN SYS_REFCURSOR \n" +
               "AS \n" +
               "my_cursor SYS_REFCURSOR; \n" +
               "BEGIN \n" +
               "OPEN my_cursor FOR SELECT * FROM login where username=p_username; \n" +
               "RETURN my_cursor; \n" +
               "END; \n";

  stmt.execute(sql);

  CallableStatement cstmt = conn.prepareCall("BEGIN " + "? :=search_admin(?); " + "END; ");
  cstmt.registerOutParameter(1, OracleTypes.CURSOR);
  cstmt.setString(2, UserText3.getText());
  cstmt.execute();

  rs = (ResultSet) cstmt.getObject(1);

  if(!rs.isBeforeFirst()) {
    JOptionPane.showMessageDialog(null, "Invalid Username");
  }
  else {
    DeleteTable.setModel(DbUtils.resultSetToTableModel(rs));
    DeleteTable.setEnabled(false);
  }

  while(rs.next()) {
    NameLabel.setText(rs.getString("name"));
    UsernameLabel.setText(rs.getString("username"));
    PasswordLabel.setText(rs.getString("password"));
  }
} catch(Exception e) {
  JOptionPane.showMessageDialog(null, e);
}
假设它返回一个
TableModel
的实例,您可以通过这种方式浏览它的内容,而不是再次尝试读取
ResultSet

DbUtils.resultSetToTableModel(rs)

for(int i=0;以下行可能会耗尽ResultSet:
DbUtils.resultsetottablemodel(rs)
,因此您不再需要阅读任何内容。那么解决方案是什么?
        for(int i =0;i<model.getRowCount();i++){

            for(int j=0;j<model.getColumnCount();j++){

                System.out.println(model.getValueAt(i, j));
            }
        }