Clase manejadora MySQL + Java

Bueno les dejo una pequeña clase para para manejar nuestro MySQL que realiza por lo pronto tres metodos (o dos como quieran), la voy a ir mejorando pero para una conexión básica sirve perfecto…
Supondremos que el servidor de base de datos se encuentra activo y funcionando y que la base de datos ya fue creada. A continuación les dejo la tabla sobre la cual haremos la consulta.
Creacion de la tabla “pais”.
1 2 3 4 5 | CREATE TABLE IF NOT EXISTS `pais` ( `id` int(3) UNSIGNED NOT NULL, `nombre varchar(30) NOT NULL, PRIMARY KEY (`id`) ); |
La cargamos con algunos datos para hacer la consulta…
1 2 3 4 5 6 7 8 9 10 11 | INSERT INTO `pais` (`id`, `nombre`) VALUES (1, 'Afganistán'), (2, 'Albania'), (3, 'Alemania'), (4, 'American Samoa'), (5, 'Andorra'), (6, 'Angola'), (7, 'Anguila'), (8, 'Antigua and Barbuda'), (9, 'Antillas Holandesas'), (10, 'Antártida'); |
Listo ya tenemos nuestra base de datos con paises…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | //Organizo estas clases en un paquete Controladores, si quieren obvien este paso... package Controladores; //Estas son clases de java que debemos importar que las usaremos mas adelante... import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * @author Chuecko * @Site: http://www.zarpele.com.ar * @License: GPL * @Description: Conexión a base de datos MySQL * */ public class MySQL { //Variable de tipo Connection... Connection conexion = null; //Datos de conexion public String bd = "zarpele"; public String user = "user"; public String pass = "pass"; //url no deben modificarlo, salvo que se conecten a una base de datos remota... public String url = "jdbc:mysql://localhost/"+bd; //Contructor... public MySQL() throws InstantiationException, IllegalAccessException, ClassNotFoundException { try { //Creando Instancia del driver java.lang.Class.forName("com.mysql.jdbc.Driver").newInstance(); //Conectando con los datos de conexión this.conexion = DriverManager.getConnection(url,user,pass); // Datos del producto, version de mysql, etc. No es necesario por eso esta comentado... // DatabaseMetaData meta = (DatabaseMetaData) conexion.getMetaData(); // System.out.println("El SGBD e s : "); // System.out.println(meta.getDatabaseProductName()); // System.out.println(meta.getDatabaseProductVersion()); System.out.println("Se ha conectado con exito!!!"); } catch (SQLException ex) { // Aquí capturo la exepcion y muestos los mensajes y un error con el nombre de la base de datos System.out.println("Problemas al conectar con MySQL con base de datos :"+bd); System.out.println("SQLException : " + ex.getMessage()); System.out.println("SQLState : " + ex.getSQLState()); System.out.println("VendorError : " + ex.getErrorCode()); } } //Pequeño método para realizar una consulta public ResultSet consulta(String SQL) throws SQLException { // Creamos un tipo Statement que maneja las consultas Statement s = this.conexion.createStatement(); // Retorno la consulta especifica... return s.executeQuery (SQL); } //Cerramos la conexión previamente abierta... public void cerrar() throws SQLException { this.conexion.close(); } } |
Listo esta clase nos ahorra muchas lineas de código cuando queramos traer datos desde la base de datos…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | //Importamos la clase anterior y las que usamos en esta clase Main import Controladores.MySQL; import java.sql.ResultSet; import java.sql.SQLException; /** * * @author Chuecko * @Site: http://www.zarpele.com.ar * @License: GPL * @Description: Ejemplo de consulta MySQL * */ public class Main { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException { // Instanciamos la clase MySQL, que realiza la conexión MySQL controladorDB=new MySQL(); // Esta es la consulta en lenguaje SQL String SQL=" SELECT * FROM pais"; // Como ya vimos la consultas manejan un tipo ResultSet, le pasamos SQL y realizamos la consulta ResultSet rs = controladorDB.consulta(SQL); // Se recorre el ResultSet, mostrando por pantalla los resultados. // Nótese que podemos usar el nombre de la column o un identificador empezando por 1 while (rs.next()) { System.out.println (rs.getInt ("id") + " " + rs.getString (2)); System.out.println ("*******************"); } // Cerramos la conexion controladorDB.cerrar(); }<pre> } |
Esto nos daría como resultado…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | run: Se ha conectado con exito!!! 1 Afganistán ******************* 2 Albania ******************* 3 Alemania ******************* 4 American Samoa ******************* 5 Andorra ******************* 6 Angola ******************* 7 Anguila ******************* 8 Antigua AND Barbuda ******************* 9 Antillas Holandesas ******************* 10 Antártida GENERACIÓN CORRECTA (tiempo total: 1 segundo) |
Y listo, a esta altura de hacer consultas con base de datos, se supone que están utilizando algún IDE, en mi caso en este momento uso NetBeans, que es mas fácil implementar las excepciones además de infinitas ventajas (ya es hora que sueltes el Notepad, Gedit, Kedit, etc…).
No se olviden de importar las bibliotecas necesarios en este caso Driver MySQL JDBC.
Cualquier sugerencia o critica solo comenten….
Si te fue útil también comentá…
Saludos…
Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.















hola gracias por este tutorial me resulto de bastante ayuda, solo tengo una pregunta esta parte puede quedar de manera global en todo mi proyecto.
MySQL controladorDB=new MySQL();
Gracias
Hace bastante ya que no veo algo de Java, pero de poder se puede, no te lo recomiendo. Es recomendable abrir la conexión, realizar la consulta y cerrar la conexión, pensá en varios usuarios, si tenemos muchas conexiones abiertas en paralelo, haría que el sistema se vuelva lento como una tortuga…
Gracias a ti por comentar…
muchas gracias crei que no era la manera adecuada pero ahora me despejas mis dudas
Gracias feliz dia.
Excelente aporte!!
Muchas gracias.
justo lo que estaba buscando!
Thanks.