"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo pasar de manera segura los parámetros a un JDBC PrepareStatement?

¿Cómo pasar de manera segura los parámetros a un JDBC PrepareStatement?

Publicado el 2025-02-05
Navegar:280

How to Safely Pass Parameters to a JDBC PreparedStatement?

pase de parámetros a un JDBC preparado en preparación

creando una clase de validación para un programa Java a menudo implica consultar una base de datos. El siguiente código intenta seleccionar una fila específica de una tabla utilizando una TEPRESPECTATION con un parámetro:

public class Validation {

    // ...

    public Validation(String userID) {
        try {
            // ...
            statement = con.prepareStatement(
                    "SELECT * from employee WHERE  userID = "   "''"   userID);
            // ...
        } catch (Exception ex) {
            // ...
        }
    }

    // ...
}

sin embargo, este código puede no funcionar porque la instrucción SQL no está formateada correctamente.

solución:

para pasar correctamente un parámetro a un Preparado Statement, use el método setString ():

statement = con.prepareStatement("SELECT * from employee WHERE  userID = ?");
statement.setString(1, userID);

Este método establece el valor del primer parámetro (?) A la ID de usuario especificada. Asegura que la declaración se formatee correctamente y evite la inyección SQL, una vulnerabilidad de seguridad que ocurre cuando el código SQL malicioso se inyecta en una consulta.

para obtener más información sobre el uso de Estataciones Preparadas, consulte los tutoriales Java.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3