Thủ tục và mã Java cần ít áp dụng. Vì vậy, hãy bắt đầu với thủ tục:
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
Bạn muốn lấy giá trị "idusuarios" từ cơ sở dữ liệu. Vì vậy, bạn cần lưu nó trong giá trị tham số. Đảm bảo tham số và giá trị trong mệnh đề select khác nhau hoặc cung cấp tên cột thông qua [tên bảng]. [Column] hoặc bí danh.
Vấn đề với Java:Bạn hoàn toàn không cần Đối tượng ResultSet. Để truy cập giá trị từ tham số đầu ra thủ tục, hãy sử dụng cs.getInt () do lớp CallableStatement cung cấp.
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);
}
}
}
}