sql >> データベース >  >> RDS >> Mysql

Javaからのストアドプロシージャの呼び出し

    プロシージャとJavaコードはほとんど採用する必要がありません。それでは、手順から始めましょう:

    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」を取得したいとします。したがって、パラメータ値に保存する必要があります。select句のパラメータと値が互いに異なることを確認するか、[tablename]。[column]またはaliasを介して列名を指定してください。

    Javaの問題:ResultSetオブジェクトはまったく必要ありません。プロシージャの出力パラメータから値にアクセスするには、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);
                }
            }
        }
    }
    


    1. PHPの異なるテーブルフィールドでPDFとビデオを別々に挿入する方法

    2. NSISを使用したpostgresqlのインストール

    3. 既存のテーブルへの外部キーの追加

    4. mysqlデータベースから日付をバックアップおよび復元するにはどうすればよいですか?