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);
}
i zeigen wollen, den Benutzernamen, Name, Passwort im jlabels
aber es zeigt nicht ... Ich habe eine gespeicherte Funktion in Datenbank mit dem Namen search_admin. Wenn ich das Programm ausführen keine Fehler in der gezeigten aber die jlabels
nicht die resultset
Daten zeigen.JLabels ist nicht die Ergebnisse in den JLabels zeigt
Die folgende Zeile erschöpft wahrscheinlich das ResultSet: 'DbUtils.resultSetToTableModel (rs)', so dass Sie nichts mehr zu lesen haben. – Berger
Was ist die Lösung dann? –