TransWikia.com

Error con PreparedStatement

Stack Overflow en español Asked on January 5, 2022

Mi problema es que me retorna un valor nulo,hay algun error en el preparedstatement que no me lo deja ejecutar y no puedo encontrar que es.

private final String CONSULTA_DATOS="SELECT * FROM ?";

public ResultSet getResultNegocio() {
    ResultSet rs = null;
    try {
    PreparedStatement s=getConexionNegocio().prepareStatement(CONSULTA_DATOS);
    s.setString(1, "VENTA");
    
    return s.executeQuery();}
    
    catch (SQLException e) {
    JOptionPane.showMessageDialog(null, "Error con la consulta preparada");}
    return null;}

One Answer

Tu código no funcionará de ese modo porque no se permite pasar nombres de tablas, de columnas, de bases de datos u otros como parámetros, únicamente se pueden pasar parámetros para valores.

Si lo piensas bien, no tiene ningún sentido querer pasar como parámetro el nombre de la tabla VENTAS cuando lo puedes incorporar directamente a la consulta:

private final String CONSULTA_DATOS="SELECT * FROM VENTAS";

Y, si fuese una variable, igual, la concatenas a CONSULTA_DATOS y listo.

Prueba así:

private final String CONSULTA_DATOS="SELECT * FROM VENTAS";

public ResultSet getResultNegocio() {
    ResultSet rs = null;
    try {
    PreparedStatement s=getConexionNegocio().prepareStatement(CONSULTA_DATOS);
    
    return s.executeQuery();}
    
    catch (SQLException e) {
    JOptionPane.showMessageDialog(null, "Error con la consulta preparada");}
    return null;}

Salvo otros errores, debería funcionar.

Answered by A. Cedano on January 5, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP