Título: problemas en consultas sql java
Publicado por: miniricky en 22 Enero 2014, 20:11 pm
pues empezamos por lo primero Buenas Tardes!! mi problema es que quiero realizar una consulta sql, dentro de un sentencia de control if y me manda error de compartibilidad de tipos, Este es el error, lo demas funciona bien, incluso cambien la consulta por un metodo para validar cajas de texto y me corrio bien solo que debo de dar doble clic para que accese. if(tran.consultar(sqlStmt)){ la clase transaccion donde creo los metodos para relizar consultas public class Transaccion { private String query; private Statement stmt; public ResultSet res; private Connection conn = null;
public Transaccion(Connection conn) { this.conn = conn; this.res = null; this.query = ""; this.stmt = null; }
public ResultSet getRes() { return res; }
// realiza consultas sobre la base de datos [color=red] public void consultar(String query) { try { if (conn != null) { stmt = conn.createStatement(); res = stmt.executeQuery(query); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }[/color]
public void actualiza(String query) { try { if (conn != null) { stmt = conn.createStatement(); stmt.executeUpdate(query); } }catch(SQLException e) { JOptionPane.showMessageDialog(null, e); } }
public void Desconectar(){ try{ res.close(); stmt.close(); conn.close(); }catch(SQLException e){ JOptionPane.showMessageDialog(null, e); } } intento hacer una conexion a la base de datos para acceder a un Jdialog private void butaceptarActionPerformed(java.awt.event.ActionEvent evt) {
try { tran = new Transaccion(conn.getConn()); conn.conectar(); } catch (Exception ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); }
String sqlStmt; // Verifico que esta intentando ingresar //preparo el query o la sentencia if (butaceptar.getText() == "aceptar") { // Prepara Variable para realizar el Query if (validarcajas()) {
sqlStmt = "Select * from logeo"; sqlStmt += " Where usuario='" + txtusuario.getText() + "'"; sqlStmt += " And contraseña='" + String.valueOf(txtcontraseña.getPassword()) + "'";
// Ejecuto la Consulta o query tran.consultar(sqlStmt);
try { [color=red][s]if(tran.consultar(sqlStmt))[/s][/color]{ //verifica que haya encontrado un registro if (tran.getRes().next()) {
txtnombre.setText(tran.getRes().getString("nombre")); txtrol.setText(tran.getRes().getString("rol"));
//Cambio el Texto del Boton butaceptar.setText("Ingresar"); //Deshabilito Cancelar butcancelar.setEnabled(false); } else { txtnombre.setText("Usuario y Cotraseña Incorrectos"); txtrol.setText("Intenta de Nuevo ..."); } tran.Desconectar(); } } catch (RuntimeException e) { // Mensaje de que no logrola conexion } catch (com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException e) { // Mensaje de que no logrola conexion JOptionPane.showMessageDialog(null, e); } catch (SQLException ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } } } else { // Bievenido JOptionPane.showMessageDialog(null, "Ingresando al Sistema"); conn.Desconectar();
BarraDeMenu ventana = new BarraDeMenu(); ventana.show(); dispose(); } } Espero y sea entendible ya que es mi primer post' GRACIAS!!
Título: Re: problemas en consultas sql java
Publicado por: 1mpuls0 en 23 Enero 2014, 04:01 am
1. Bienvenido 2. Utiliza el geshi con la opcion de java [ code=java ] aqui tu codigo [ /code ] 3. Compartibilidad??, no séra compatibilidad? 4. Haz un System.out.print(sqlStmt); copia y pegalo en tu consola de sql para ver si funciona. 5. Revisa que el tipo de datos y tamaño de tus campos en la base de datos sean los adecuados.
Título: Re: problemas en consultas sql java
Publicado por: miniricky en 23 Enero 2014, 04:42 am
bueno la sentencia es correcta, de hecho muestra los datos de la bd el problema en si es como meter la consulta public void consultar(String query) { try { if (conn != null) { stmt = conn.createStatement(); res = stmt.executeQuery(query); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } en la sentencia de control if(tran.consultar(sqlStmt)) es hay donde me marca error de compatibilidad una manera de solucionarlo seria pasando el metodo void a boolean pero necesitaria cambiar la estructura de la clase lo que quiero es saber si hay alguna forma de evitar eso, algo como un parse
Título: Re: problemas en consultas sql java
Publicado por: 1mpuls0 en 24 Enero 2014, 00:27 am
Vienes de php o algo así' :P una manera de solucionarlo seria pasando el metodo void a boolean pero necesitaria cambiar la estructura de la clase
pues sí eso... otra manera es teniendo métodos para validar el resultado de tu consulta public boolean esVacio por ejemplo para revisar si tu consulta regresa resultados mediante un select count un método para verificar si retorna un error utilizando un try catch public boolean error (String query ) { boolean error = false; try { error = false; } catch (Exception e ) { // si llega al catch significa que algo está mal con el query System. err. println("Got an exception!"); System. err. println(e. getMessage()); error = true; } return error; }
Espero te sirva de algo, saludos.
|