Foros del Web » Programación para mayores de 30 ;) » Java »

error statement

Estas en el tema de error statement en el foro de Java en Foros del Web. Ayuda Buenas tardes. Tengo un problema a ver si me pueden ayudar. Hice una clase para conectar a una base de datos mysq por jdbc, ...
  #1 (permalink)  
Antiguo 19/08/2008, 15:04
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
error statement

Ayuda
Buenas tardes.

Tengo un problema a ver si me pueden ayudar.

Hice una clase para conectar a una base de datos mysq por jdbc, con 3 metodos, una para conectar, devolver la conexion y cerrar la conexion.

Tengo otro desde donde mando llamar esa clase. y si conecta bien, pero a la hora de recuperar la conexion, para asignarle un Statement para una consulta me marca este error.

"C:\javaivan>javac PruebaConexion.java
PruebaConexion.java:12: non-static variable stmt_consul cannot be referenced from a static context stmt_consul=myconn.createStatement();
^
1 error"

Mi pregunta es, estoy mandando llamar mal el Statement.

Estos son mis archivos.

PruebaConexion.java

import saaf.db.*;
import java.sql.*;

class PruebaConexion
{
Statement stmt_consul=null;
public static void main(String [] args)
{
// Creamos una instancia de la clase conn_bd llamada conn
dbconn cn = new dbconn("localhost","saaf","root","mypass");
Connection myconn = cn.getConexion();
stmt_consul=myconn.createStatement();
//Cerrar conexion
cn.CerrarConexion();
System.out.println(myconn);
}
}


************************************************
dbconn.java

package saaf.db;
import java.sql.*;

public class dbconn
{
public String driver,url,ip,bd,usr,pass;
public Connection conexion;
public dbconn(String ip, String bd, String usr, String pass)
{
driver="com.mysql.jdbc.Driver";
this.bd = bd;
this.usr = usr;
this.pass = pass;
url = new String("jdbc:mysql://" + ip + "/" + bd);
try
{
Class.forName(driver).newInstance();
conexion=DriverManager.getConnection(url,usr,pass) ;
System.out.println("Conexion a Base de Datos " + bd + " Ok");
}

catch (Exception exc)
{
System.out.println("Error al tratar de abrir la base de Datos"+bd+" : "+exc);
}
}
/**Permite retornar la conexión*/
public Connection getConexion()
{
return conexion;
}
public void CerrarConexion()
{
conexion = null;
}
} //fin de la clase


Agradeceria mucho su ayuda, piesno que un detalle minimo, pero no se que pueda ser
Gracias
  #2 (permalink)  
Antiguo 19/08/2008, 16:43
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: error statement

hola mira porq en vez de conectarte cada vez que necesites crear un stament lo que haces es hacer una clase que utilize el patron singleton que se conecte una sola vez (al arrancar el programa) y luego pides la conexion de donde quieras?

aca te dejo el cod de como seria

Código:
import java.sql.Connection;
import java.sql.DriverManager;

/**
 *
 * @author Agustin Sivoplas
 */
public class ConexionBD {
    private Connection con;
    private static ConexionBD instancia=null;
    /** Creates a new instance of ConexionBD */
    private ConexionBD() {
    }
    /**
     *Retorna la instancia de la clase.
     *
     *
     *@return ConexionBD
     */
    
    public static ConexionBD getInstancia(){
        if (instancia==null)
            instancia = new ConexionBD();
        return instancia;
    }
    /**
     *Permite conectarnos a la base de datos
     *
     *
     *@param usr String
     *
     *
     *@param pwd String
     *
     *
     *@param host String
     *
     *
     *@param base String
     *
     *
     *@return Boolean
     */
    public boolean conectar(String usr, String pwd, String host,String base){
        boolean valor=false;
        
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://" + host + "/" + base,usr, pwd);
            
            valor=true;
            
        } catch(Exception ex){
            ex.printStackTrace();
            valor=false;
        }
        return valor;
    }
    /**
     *Retorna la conexion.
     *
     *
     *@return Connection
     */
    public Connection getConexion(){
        return con;
    }
    
}

para llamarlo lo que haces es Connection con =ConexionBD.getInstancia().getConexion();

saludos, cualquier cosa me avisas
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 19/08/2008, 17:17
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: error statement

Hola djagu_26.

Me podrias mandar un ejemplo de como puedo mandar llamar esa clase desde otro archivo y como ejecutar una consulta sql sencilla

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:51.