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

Ayuda

Estas en el tema de Ayuda en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/08/2008, 12:49
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
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, 13:47
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Ayuda

Hola,

Esto es porque un metodo estatico esta mandando a llamar una variable que no es estatica, en tu caso, el main es estatico pero la variable nop.

Para solucionar esto debes de declarar tu variable Statement como estatica:
static Statement stmt_consul=null;

O puedes crear un metodo cualquiera y desde ahi mandarla a llamar.
public void testConexion() {
dbconn cn = new dbconn("localhost","saaf","root","mypass");
Connection myconn = cn.getConexion();
stmt_consul=myconn.createStatement();
//Cerrar conexion
cn.CerrarConexion();
System.out.println(myconn);

}

Te recomiendo la segunda opcion, declara un metodo nuevo.

saludos!
  #3 (permalink)  
Antiguo 19/08/2008, 14:32
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Ayuda

Que tal Bunburyscom.

Ya le hice como me dijiste y me sigue marcando otro error

Este es el codigo completo PruebaConexion.java

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

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

************************************************** ***
AHora me marca este error

C:\javaivan>javac PruebaConexion.java
PruebaConexion.java:18: non-static method testConexion() cannot be referenced from a static context
testConexion();
^
1 error

Que me faltara, espero me puedas ayudar
  #4 (permalink)  
Antiguo 20/08/2008, 08:00
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Ayuda

Hola,
En el main tienes que hacer esto:

PruebaConexion prueba=new PruebaConexion();
prueba.testConexion();

Eso es todo.

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 07:34.