SQL查询没有在java中执行

时间:2014-04-07 00:53:19

标签: java sql

我试图通过java程序执行查询,但它没有执行。这是方法

 public List<Usuario> darProveedores() throws Exception{
    PreparedStatement st=null;
    ArrayList<Usuario> respuesta = new ArrayList<Usuario>();
    String consulta ="SELECT u.direccion_electronica AS dirE, "
                    + "u.login AS login, "
                    + "u.palabra_clave AS clave, "
                    + "u.rol AS rol, "
                    + "u.tipo_persona AS tipoPer, "
                    + "u.documento_identificacion AS docID, "
                    + "u.nombre AS nombre, "
                    + "u.nacionalidad AS naci, "
                    + "u.direccion_fisica AS dirF, "
                    + "u.telefono AS tel, "
                    + "u.ciudad AS ciudad, "
                    + "u.departamento AS depto, "
                    + "u.codigo_postal AS codPostal "
                    + " FROM usuarios u "
                    + " WHERE u.rol='Proveedor' ";
    try{

        iniTemp();
        establecerConexion(cadenaConexion, usuario, clave);
        st = conexion.prepareStatement(consulta);
        ResultSet r= st.executeQuery(consulta);

        while(r.next()){

            String dirE= r.getString("dirE");
            String login = r.getString("login");
            String clave = r.getString("clave");
            String rol = r.getString("rol");
            String tipoPer = r.getString("tipoPer");
            String docID = r.getString("docID");
            String nombre = r.getString("nombre");
            String naci = r.getString("naci");
            String dirF = r.getString("dirF");
            String tel= r.getString("tel");
            String ciudad = r.getString("ciudad");
            String depto = r.getString("depto");
            String codPostal = r.getString("codPostal");

            Usuario u = new Usuario(login, dirE, clave, rol, tipoPer, Integer.parseInt(docID), nombre, naci, dirF, Integer.parseInt(tel), ciudad, depto, Integer.parseInt(codPostal));

            respuesta.add(u);
        }

    }
    catch(Exception e)
    {
        e.printStackTrace();

    }

    finally{
        if (st != null) 
        {
            try {
                st.close();
            } catch (SQLException exception) {

                throw new Exception("ERROR: ConsultaDAO: loadRow() =  cerrando una conexion.");
            }
        }
        closeConnection(conexion);
    }

    return respuesta;
}

我已经在SQL Developer上执行了查询,它返回一个包含值的表,但是什么时候 我通过这里执行while(r.next())指令说答案中没有行

1 个答案:

答案 0 :(得分:1)

没有参数时,您不需要使用PreparedStatement。只需使用Statement代替PreparedStatement,然后st = conexion.createStatement()即可创建它。