Mysql en Java parte 1
Una de las tareas más difíciles al momento de comenzar a trabajar con Java es cuando nos topamos con las bases de datos. En esta oportunidad les enseñaremos paso a paso la creación de una clase de conexión que nos permitirá el uso de Mysql.
En este tutorial aprenderemos a conectar y desconectarnos de nuestro servidor de base de datos.
- Los datos necesarios para establecer una conexión cualquiera son:
url = ruta de nuestro servidor.
dbName = nombre de la base de datos que utilizaremos.
driver = el nombre de la librería que utilizaremos para establecer la conexión.
userName = Usuario con privilegios.
password = Contraseña del usuario con privilegios.
- Comenzaremos creando una clase Conexión, la cual contendrá todos los métodos y atributos necesarios para poder trabajar con nuestra base de datos. El primer paso sera declarar los atributos:
package qualityinfosolutions; import java.sql.*; //Agregamos la librería public class Conexion { private Connection conn; // Connection es la interfaz necesaria para establecer la conexión private String url; private String dbName; private String driver; private String userName; private String password; } }
Para que funcione correctamente todo necesitamos agregar a nuestro proyecto el driver «Driver MySQL JDBC» en la carpeta lib. Podemos obtener este driver fácilmente desde el siguiente link Driver MySQL, en el caso que utilicen algún IDE de desarrollo como Netbeans solo deben agregar la librería haciendo clic derecho en Bibliotecas->Agregar biblioteca y buscar el driver.
- Crearemos 2 constructores uno con los datos por defecto y otro que permita que nos envíen los datos de conexión.
public Conexion() { this.conn = null; //dejamos este valor nulo solo para darle un valor inicial luego lo utilizaremos. this.url = "jdbc:mysql://localhost:3306/"; //localhost puede ser reemplazado por su ip ejemplo 192.168.0.2 o donde s e encuentre su servidor de base de datos. this.dbName = "quality_info_solutions"; this.driver = "com.mysql.jdbc.Driver"; //Nombre de la librería que agregamos al proyecto anteriormente this.userName = "root"; this.password = "1234"; } public Conexion(String url, String dbName, String driver, String userName, String password) { //Solicitamos los datos de conexión necesarios e instanciamos los atributos this.conn = null; this.url = url; this.dbName = dbName; this.driver = driver; this.userName = userName; this.password = password; }
- Por último los métodos de conexión y desconexión a nuestra base de datos.
public boolean conectar() { boolean conectado = false; try { Class.forName(this.driver).newInstance(); //Establece el driver utilizado this.conn = DriverManager.getConnection(this.url + this.dbName, this.userName, this.password);//Establece la Conexión conectado = true; }catch (SQLException e) { System.out.println("Error de MySQL: " + e.getMessage()); //Imprimimos si el error es generado por la base de datos }catch (Exception e) { System.out.println("Error inesperado: " + e.getMessage());//Imprimimos cualquier otro error que pueda ocurrir } return conectado; } public boolean desconectar() { boolean conectado = false; try { this.conn.close(); //termina la conexión con la base de datos conectado = true; }catch (SQLException e) { System.out.println("Error de MySQL: " + e.getMessage()); }catch (Exception e) { System.out.println("Error inesperado: " + e.getMessage()); } return conectado; }
- Podemos revisar el funcionamiento de nuestra clase desde la clase principal.
package qualityinfosolutions; public class BaseDatosApp { public static void main(String[] args) { String url; String dbName; String driver; String userName; String password; //Prueba sin enviar parametros Conexion conn = new Conexion(); //Imprimimos los resultados System.out.println("Estado Conexión : " + conn.conectar()); System.out.println("Estado Desconexión : " + conn.desconectar()); //Prueba conexión enviando parametros url = "jdbc:mysql://localhost:3306/"; dbName = "quality_info_solutions"; driver = "com.mysql.jdbc.Driver"; userName = "root"; password = "1234"; Conexion conn2 = new Conexion(url, dbName, driver, userName, password);//Enviamos los datos necesarios al segundo constructor //Imprimimos los resultados System.out.println("Estado Conexión : " + conn.conectar()); System.out.println("Estado Desconexión : " + conn.desconectar()); } }
Clase Conexión completa
package qualityinfosolutions; import java.sql.*; public class Conexion { private Connection conn; private String url; private String dbName; private String driver; private String userName; private String password; public Conexion() { this.conn = null; this.url = "jdbc:mysql://localhost:3306/"; this.dbName = "quality_info_solutions"; this.driver = "com.mysql.jdbc.Driver"; this.userName = "root"; this.password = "1234"; } public Conexion(String url, String dbName, String driver, String userName, String password) { this.conn = null; this.url = url; this.dbName = dbName; this.driver = driver; this.userName = userName; this.password = password; } public boolean conectar() { boolean conectado = false; try { Class.forName(this.driver).newInstance(); this.conn = DriverManager.getConnection(this.url + this.dbName, this.userName, this.password); conectado = true; }catch (SQLException e) { System.out.println("Error de MySQL: " + e.getMessage()); }catch (Exception e) { System.out.println("Error inesperado: " + e.getMessage()); } return conectado; } public boolean desconectar() { boolean conectado = false; try { this.conn.close(); conectado = true; }catch (SQLException e) { System.out.println("Error de MySQL: " + e.getMessage()); }catch (Exception e) { System.out.println("Error inesperado: " + e.getMessage()); } return conectado; } }
El resultado será:
Estado Conexión : true
Estado Desconexión : true
Estado Conexión : true
Estado Desconexión : true
Lo cual indica que esta todo correctamente funcionando.
En la próxima oportunidad aprendemos a utilizar métodos para realizar las consultas básicas.
Saludos
Hola, donde encuentro los métodos para realizar las consultas básicas?.
Lo lamento nunca termine el post completo a penas tenga un tiempo lo subire.
Saludos