प्रक्रिया और जावा कोड को थोड़ा अपनाने की जरूरत है। तो चलिए इस प्रक्रिया से शुरू करते हैं:
create DEFINER=`root`@`localhost` PROCEDURE `comprobarUsuario`(
IN usu varchar(20),
IN pass varchar(20),
OUT idusuarios int)
BEGIN
SELECT usuarios.idusuarios
into idusuarios
FROM usuarios
WHERE usuarios.nombreUsuario = usu and usuarios.contraseña = pass;
end
आप डेटाबेस से "idusuarios" मान पुनर्प्राप्त करना चाहते हैं। इसलिए आपको इसे पैरामीटर मान में सहेजना होगा। सुनिश्चित करें कि चयन खंड में पैरामीटर और मान एक दूसरे से अलग हैं या [टेबलनाम] [कॉलम] या उपनाम के माध्यम से कॉलम नाम प्रदान करें।
जावा समस्या:आपको परिणामसेट ऑब्जेक्ट की बिल्कुल भी आवश्यकता नहीं है। एक प्रक्रिया आउटपुट पैरामीटर से मूल्य तक पहुंचने के लिए CallableStatement वर्ग द्वारा प्रदान किए गए cs.getInt() का उपयोग करें।
public void mostrarDatos(){
Connection con = null;
try {
con = getConnection();
CallableStatement cs = con.prepareCall("{CALL comprobarUsuario(?,?,?)}");
cs.setString(1, "Jorge");
cs.setString(2, "1627Jorge");
cs.registerOutParameter(3, java.sql.Types.INTEGER);
cs.executeUpdate();
int resultado = cs.getInt(3);
System.out.println(resultado);
} catch (Exception e) {
System.out.println(e);
} finally {
if(con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}
}