Autor
|
Tema: Clase para conectar a una base de datos e interactuar con ella [JDBC] Mysql (Leído 20,665 veces)
|
Pablo Videla
|
Clase creada para interactuar con una base de datos mysql , se requiere agregar la libreria de mysql... espero que a alguien le sirva , saludos. /** * * @author BadDevil * Para elhacker.net */ package BD; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class BD { private String driverClassName ; this.user = user; this.password = password; this.url = url; this.driverClassName = driverClassName; } public BD() { this.user = "root"; this.password="tupass"; this.url = "jdbc:mysql://localhost/tu_basedatos"; this.driverClassName = "com.mysql.jdbc.Driver"; // driver } return password; } return url; } return user; } public void setPassword (String password ) { this.password = password; } public void setUrl (String url ) { this.url = url; } return conn; } this.conn = conn; } public void setDriverClassName (String driverClassName ) { this.driverClassName = driverClassName; } public String getDriverClassName () { return driverClassName; } this.user = user; } try { Class.forName(this.driverClassName).newInstance(); this. conn = DriverManager. getConnection(this. url, this. user, this. password); System. out. println("Error " + err. getMessage()); } } this.stmt = conn.createStatement(); return this.stmt.executeQuery(sql); } this.stmt = conn.createStatement(); stmt.executeUpdate(sql); } } return st.executeUpdate(Q); } this.conn.close(); } }
|
|
|
En línea
|
|
|
|
rigoxls
Desconectado
Mensajes: 57
|
A mi me sirve, gracias, voy a ver si implementandola agilizo un poco las consultas, actualmente el metodo que uso me toma al rededor de 25 segundos para generar reportes, consultas etc...
gracias...
|
|
|
En línea
|
No hay verdades absolutas sin ciegas posiciones !!!
|
|
|
Pablo Videla
|
No hay problema, trata de usar una clase controladora que llame a los metodos desde una clase aparte ... asi tendras mas control de las consultas sql y se vera mas ordenado.
|
|
|
En línea
|
|
|
|
Anibal784
Desconectado
Mensajes: 762
Yo no la vote, pero me la tengo que aguantar igual
|
Hay un par de cosas que no me convencen.
¿para qué querría hacer un getPass()?, en tu clase, tienes un setConn, el cual es medio ilógico, no terminás encapsulando nada, supongamos que seteo todo, el pass, el user, la url, etc. y luego en lugar de conectar hago un setConn con una conexión anterior que no se condicen con todos esos datos seteados antes.
¿qué pasa si hago un actualizar() sin antes haber hecho un conectar()?, explota porque conn va a estar en null y no se le puede enviar un mensaje a null.
Lo que puedes hacer para que quede mejor, desde mi punto de vista, es, cada vez que seteas un parámetro intentes de nuevo la conexión, por ejemplo, cambias el user, en ese mismo intentar conectarte de nuevo o por lo menos cerrar la conexión actual pues ya no es válida, ésta me parece la mejor opción, luego, cada vez que intentes una consulta, ver si se está conectado, si no se está probar conectarse y luego si se tiene éxito hacer la consulta, o bien lanzar la excepción de que no se está conectado o algo así.
|
|
|
En línea
|
El que llega sin que lo llamen, se va sin que lo echen. Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
|
|
|
Pablo Videla
|
Hay un par de cosas que no me convencen.
¿para qué querría hacer un getPass()?, en tu clase, tienes un setConn, el cual es medio ilógico, no terminás encapsulando nada, supongamos que seteo todo, el pass, el user, la url, etc. y luego en lugar de conectar hago un setConn con una conexión anterior que no se condicen con todos esos datos seteados antes.
¿qué pasa si hago un actualizar() sin antes haber hecho un conectar()?, explota porque conn va a estar en null y no se le puede enviar un mensaje a null.
Lo que puedes hacer para que quede mejor, desde mi punto de vista, es, cada vez que seteas un parámetro intentes de nuevo la conexión, por ejemplo, cambias el user, en ese mismo intentar conectarte de nuevo o por lo menos cerrar la conexión actual pues ya no es válida, ésta me parece la mejor opción, luego, cada vez que intentes una consulta, ver si se está conectado, si no se está probar conectarse y luego si se tiene éxito hacer la consulta, o bien lanzar la excepción de que no se está conectado o algo así.
Asi es , tienes toda la razon cada vez que hay que usar un metodo hay que llamar al conectar , yo solo les dejo la clase , ustedes pueden hacer lo que quieran con ellla , esa es la idea 
|
|
|
En línea
|
|
|
|
Anibal784
Desconectado
Mensajes: 762
Yo no la vote, pero me la tengo que aguantar igual
|
es que entonces tu clase no me sirve de nada, carece de sentido, supongamos que hago un código algo así: BD db = new BD("usuario", "pass", "url://noseque", "driver..."); db.obtenerDatos("consulta sql"); if(condicion){ db.setUser("anibal"); db.actualizar("otra consulta sql"); }
ahí cambié el usuario, o sea me conecto con otro usuario y por torpeza me olvidé de hacer conectar, ejecuto otra consulta, pero la segunda consulta se hará sobre la conexión anterior. Pongamos el ejemplo de que "usuario" únicamente puede leer, o sea no puede hacer actualizar, tonces me conecto con "anibal" para hacer esa actualización, ¿sabés lo difícil que va a ser encontrar el error?. Está bien, dudo el por qué querría hacer algo así, pero tu clase lo permite, a eso voy, a que puedes mejorar la clase, abstrayendo más, si quieres obligar a que cada vez que se cambie el usuario se deba hacer un conectar, cierra la conexión anterior, carece de sentido mantenerla pues haz cambiado el usuario.
|
|
|
En línea
|
El que llega sin que lo llamen, se va sin que lo echen. Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
|
|
|
Pablo Videla
|
Es por eso que debes hacer un controlador , ahi lo dije , esta es una clase solo para conectar a la base datos y hacer consultas , debes hacer un controlador de la clase para manejarlo bien.... la clase si sirve , yo la uso .... hace tu propio controlador , yo tengo uno , solo publique la clase que conectara a la base de datos con metodos simple , alla tu que haces con ella.
|
|
|
En línea
|
|
|
|
|
sapito169
Desconectado
Mensajes: 627
|
esa clase ya existe y se llam rowset
|
|
|
En línea
|
|
|
|
Pablo Videla
|
esa clase ya existe y se llam rowset
La clase la cree yo , si fuera de otra persona colocaria los creditos , es una clase que hice en mi carrera
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
conectar base de datos mysql en w7 (solucionado)
Programación C/C++
|
el_porra
|
1
|
3,353
|
15 Septiembre 2011, 17:33 pm
por el_porra
|
|
|
Conectar FreeRadius a base de datos en mysql
GNU/Linux
|
abelcs87
|
1
|
2,500
|
23 Junio 2012, 20:17 pm
por lnvisible
|
|
|
Alguien sabe como puedo conectar PHP con mi base de datos (MySQL)?
Bases de Datos
|
ConocimientoExterno
|
1
|
2,335
|
16 Junio 2013, 14:14 pm
por #!drvy
|
|
|
Conectar base de datos MySql y mostrar consultas
Programación Visual Basic
|
sergio98
|
2
|
2,360
|
6 Julio 2014, 02:06 am
por jopela
|
|
|
Tabla XML para conectar una una base de datos en MySQL
Programación General
|
arn90
|
0
|
1,774
|
28 Noviembre 2014, 15:21 pm
por arn90
|
|