2012-04-24 21 views
6

Ho una tabella di nome dipendente, che ha il suo id, nome, numero di telefono. Sto usando MySQL come database. Sto usando Java Swing per questo. Sto cercando la tabella dei dipendenti con il nome ora usando Java (ho usato la clausola like nella mia pagina Java).Le stored procedure possono restituire un set di risultati?

Ora ho bisogno di implementare quella funzione nelle stored procedure. È possibile? E come possiamo prendere quel set di risultati nel codice Java, se è possibile ??

ora ho scritto la mia stored procedure

BEGIN 
    SELECT * FROM employee where empName like '%su%' 
END 

codice di esempio sarà apprezzato come segue .. Grazie

risposta

0

Sì, è possibile. Una stored procedure può anche restituire più set di risultati.

DELIMITER $$ -- recognized by mysql client but not phpmyadmin 

CREATE PROCEDURE prc_test() 
BEGIN 
     SELECT * 
     FROM employee 
     WHERE empName LIKE '%su%'; 
END; 
$$ 

DELIMITER ; 

CALL prc_test(); -- to call 
0

Quando si esegue una stored procedure può effettivamente tornare più oggetti ResultSet e/o conteggi aggiornare se lo fa diverse dichiarazioni.

Si utilizza CallableStatement per eseguire il proc e quindi getResultSet() o getUpdateCount() per ottenere il risultato corretto. Per più insiemi di risultati/istruzioni chiamate getMoreResults() per spostarsi tra i risultati del processo memorizzato.

Per un caso semplice come questo, è sufficiente chiamare lo getResultSet() una volta e elaborarlo.

1

La prima cosa è che si dovrebbe scrivere procedura msql che invia i parametri per LIKE,

CREATE PROCEDURE simpleproc (param1 CHAR(20)) 
BEGIN 
SELECT * FROM employee where empName like param1; 
END 

Poi da programma Java è possibile utilizzare questo codice per utilizzare procedimento,

CallableStatement cstmt = con.prepareCall("{call simpleproc(?)}"); 
cstmt.setString(1, "%su%"); 
ResultSet rs = cstmt.executeQuery(); 
Problemi correlati