Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Gọi các thủ tục được lưu trữ từ Java

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);
            }
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với MySQL từ Eclipse (CDT)

  2. Cách hàm TRIM () hoạt động trong MySQL

  3. Truy vấn MySQL XML

  4. JPA nhiều liên quan đến nhiều quan hệ không chèn vào bảng đã tạo

  5. MySQL chèn dữ liệu với các giá trị cố định và nhiều kết quả được lựa chọn