Java - Problema al conectar con BD en varios métodos

 
Vista:

Problema al conectar con BD en varios métodos

Publicado por Sagra (2 intervenciones) el 16/07/2007 19:13:48
Hola,
estoy haciendo una aplicación de un videoclub que busca, da de alta nuevas y elimina películas y los mismo para socios, juegos y préstamos. Lo implemento de la siguiente forma: Tengo una clase AccesoaDatos que contiene todos los métodos de acceso a la Base de Datos. La clase y sus atributos es ésta
public class AccesoaDatos {

private ResultSet rs = null;
private Connection conn = null;
private Statement stmt = null;
private static String idioma;
/** Creates a new instance of AccesoaDatos */
public AccesoaDatos() {
}

...

hay un método conectar() que conecta a la BD y crea el Statement de la siguiente forma:

public void conectar() throws ClassNotFoundException{

try {
Class.forName("com.mysql.jdbc.Driver");
String jdbcUrl= "jdbc:mysql://localhost:3306/videoclub";
String user="root";
String password="8troncho";
String sql;
try {
conn = DriverManager.getConnection(jdbcUrl,user,password);
stmt = conn.createStatement();

} catch (SQLException ex) {
System.out.print("No se pudo conectar a la BD");
ex.printStackTrace();
}

} catch (ClassNotFoundException ex) {
System.out.print("No se pudo encontrar el Driver");
ex.printStackTrace();
}
}

y más adelante hay un método buscar para buscar la película o lo que sea:

public void buscar(String tabla, String campo, String valor){
String sql;
try {
sql="SELECT * FROM "+tabla+" WHERE "+campo+"="+ '\"'+valor+'\"';
System.out.println(sql); //HE PUESTO ESTA LINEA PARA VER QUE LA QUERY SE CAPTURA BIEN DESDE LOS TEXTFIELDS, Y SI LO HACE BIEN
this.rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.out.print("Fallo en la ejecución de la consulta");
ex.printStackTrace();

}

}

El problema me da en este método, pues a pesar de que la query llega bien al executequery, a pesar de que hay conexión correcta a la BD, me da el error de NullPointerException:

...
Compiling 1 source file to C:\Documents and Settings\sagra\Videoclub\build\classes
compile:
run:
SELECT * FROM dvd WHERE genero="comedia"
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Paquete.AccesoaDatos.buscar(AccesoaDatos.java:146)
at Paquete.Pelicula.buscar(Pelicula.java:36)
at gui.GUISocios.BotonbuscarpelisActionPerformed(GUISocios.java:1193)
...

Me parece que el error puede estar en la declaración de los atributos de la clase, pero he probado a poner el stmt, conn y rs static se me cuelga la aplicación.
El problema lo tiene al poner la ejecución d ela consulta fuera del método conectar, pues si lo ponemos todo en el mismo método funciona a la perfección. Pero necesito que esté en métodos diferentes, pues el usuario debe poder buscar, insertar y elminar sin tener que crear una nueva conexión cada vez. ¿Es ese mi error? ¿Debo crear para cada query un nuevo Statement?
¿Alquien me puede ayudar por favor?
Gracias.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema al conectar con BD en varios métodos

Publicado por angel (537 intervenciones) el 17/07/2007 08:16:57
Hola, yo en l metodo conectar, nunca incializo el Statement, solo el Connection.
El statement, lo creo n cada uno d los metodos que vayan a realizar una acción.
No se si sera por eso por lo que te esta fallando, pero lo seguro s k tiens un valor nulo antes d un punto, es cuestion d fijart n dond t salta la excepcion y comprobar el valor d las variables n esa linea.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al conectar con BD en varios métodos

Publicado por Sagra (2 intervenciones) el 23/07/2007 17:58:25
Gracias, lo he probado y no ha funcionado. Seguiré investigando, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar