Java Mysql
Java Mysql
Java Mysql
con Java
Por
Antony García González
-
enero 4, 2015
0
49159
A continuación voy a describir paso a paso lo que se necesita para crear una base
de datos y utilizar MySQL con Java. Esta guía ha sido diseñada para aquellos
usuarios que sean principiantes en el manejo de bases de datos MySQL con Java.
Yo alguna vez estuve en dicha posición y cómo me hubiese encantado que alguien
me explicara lo que debía hacer paso por paso. Veamos qué es lo que se necesita.
Descargar XAMPP
Sólo tenemos que dar clic en “Start” para el MySQL y Apache Servers.
Hemos completado el primer paso de nuestro proceso. Veamos qué sigue.
1 public void MySQLConnection(String user, String pass, String db_name) throws Exception {
2 try {
3 Class.forName("com.mysql.jdbc.Driver");
4 Conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + db_name, user, pass);
5 JOptionPane.showMessageDialog(null, "Se ha iniciado la conexión con el servidor de forma exitosa");
6 } catch (ClassNotFoundException ex) {
7 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
8 } catch (SQLException ex) {
9 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
10 }
11 }
Ahora crearemos otro método, esta vez para crear una base de datos. Lo
llamaremos createDB(). El código es el siguiente:
Vamos a crear un método para crear una tabla dentro de la base de datos. Lo
llamaremos createTable().
Tenemos lo que se necesita para construir una Base de Datos y una Tabla. El Query
esta vez luce un poco diferente. Para crear la tabla se utiliza CREATE
TABLE seguido del nombre de la tabla, se abre un paréntesis y se coloca el
nombre de las columnas que va a tener y el tipo de dato de cada columna,
separando cada una columna de otra con una coma (,). Para este ejemplo utilizará
VARCHAR, aunque para la edad bien pude utilizar INT. Entre paréntesis se coloca
la cantidad máxima de caracteres que podrá almacenar una celda de determinada
columna. La tabla poseerá 5 columnas: ID, Nombre, Apellido, Edad y Sexo.
Ahora hay que crear un método para introducir los registros a la tabla. Crearemos
el método insertData(). El código es el siguiente:
1 public void insertData(String table_name, String ID, String name, String lastname, String age, String gender) {
2 try {
3 String Query = "INSERT INTO " + table_name + " VALUES("
4 + "\"" + ID + "\", "
5 + "\"" + name + "\", "
6 + "\"" + lastname + "\", "
7 + "\"" + age + "\", "
8 + "\"" + gender + "\")";
9 Statement st = Conexion.createStatement();
10 st.executeUpdate(Query);
11 JOptionPane.showMessageDialog(null, "Datos almacenados de forma exitosa");
12 } catch (SQLException ex) {
13 JOptionPane.showMessageDialog(null, "Error en el almacenamiento de datos");
14 }
15 }
Ahora vamos a crear un método llamado getValues() para hacer las consultas en
la base de datos. Por ahora vamos a imprimir en la consola.
Ahora el Query está formado por las palabras SELECT * FROM seguidas del
nombre de la tabla. El asterisco indica que se desean consultar todos los valores de
una fila determinada. Para hacer la consulta necesitamos crear un resultSet. Esta
variable funciona como una cabeza lectora que va leyendo fila a fila. Con el
método getString() leemos las columnas que deseamos.
report this ad
Ahora le vamos a agregar un método para borrar registros. Lo
llamaremos deleteRecord() y le introduciremos como parámetro el nombre de la
tabla y el ID del registro que queremos eliminar.
Quizás podríamos agregar métodos para borrar tablas y bases de datos pero vamos
a dejarlo así por ahora. Hemos terminado de programar la clase MySQL. Aquí la
tenemos:
1 package mysql_test;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6 import java.sql.Statement;
7 import java.util.logging.Level;
8 import java.util.logging.Logger;
9 import javax.swing.JOptionPane;
10
11 public class MySQL {
12
13 private static Connection Conexion;
14
15 public void MySQLConnection(String user, String pass, String db_name) {
16 try {
17 Class.forName("com.mysql.jdbc.Driver");
18 Conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + db_name, user, pass);
19 System.out.println("Se ha iniciado la conexión con el servidor de forma exitosa");
20 } catch (ClassNotFoundException ex) {
21 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
22 } catch (SQLException ex) {
23 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
24 }
25 }
26
27 public void closeConnection() {
28 try {
29 Conexion.close();
30 System.out.println("Se ha finalizado la conexión con el servidor");
31 } catch (SQLException ex) {
32 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
33 }
34 }
35
36 public void createDB(String name) {
37 try {
38 String Query = "CREATE DATABASE " + name;
39 Statement st = Conexion.createStatement();
40 st.executeUpdate(Query);
41 MySQLConnection("root", "", name);
42 JOptionPane.showMessageDialog(null, "Se ha creado la base de datos " + name + " de forma exitosa");
43 } catch (SQLException ex) {
44 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
45 }
46 }
47
48 public void createTable(String name) {
49 try {
50 String Query = "CREATE TABLE " + name + ""
51 + "(ID VARCHAR(25),Nombre VARCHAR(50), Apellido VARCHAR(50),"
52 + " Edad VARCHAR(3), Sexo VARCHAR(1))";
53 JOptionPane.showMessageDialog(null, "Se ha creado la base de tabla " + name + " de forma exitosa");
54 Statement st = Conexion.createStatement();
55 st.executeUpdate(Query);
56 } catch (SQLException ex) {
57 Logger.getLogger(MySQL.class.getName()).log(Level.SEVERE, null, ex);
58 }
59 }
60
61 public void insertData(String table_name, String ID, String name, String lastname, String age, String gender)
62 {
63 try {
64 String Query = "INSERT INTO " + table_name + " VALUES("
65 + "\"" + ID + "\", "
66 + "\"" + name + "\", "
67 + "\"" + lastname + "\", "
68 + "\"" + age + "\", "
69 + "\"" + gender + "\")";
70 Statement st = Conexion.createStatement();
71 st.executeUpdate(Query);
72 JOptionPane.showMessageDialog(null, "Datos almacenados de forma exitosa");
73 } catch (SQLException ex) {
74 JOptionPane.showMessageDialog(null, "Error en el almacenamiento de datos");
75 }
76 }
77
78 public void getValues(String table_name) {
79 try {
80 String Query = "SELECT * FROM " + table_name;
81 Statement st = Conexion.createStatement();
82 java.sql.ResultSet resultSet;
83 resultSet = st.executeQuery(Query);
84
85 while (resultSet.next()) {
86 System.out.println("ID: " + resultSet.getString("ID") + " "
87 + "Nombre: " + resultSet.getString("Nombre") + " " + resultSet.getString("Apellido") + " "
88 + "Edad: " + resultSet.getString("Edad") + " "
89 + "Sexo: " + resultSet.getString("Sexo"));
90 }
91
92 } catch (SQLException ex) {
93 JOptionPane.showMessageDialog(null, "Error en la adquisición de datos");
94 }
95 }
96
97 public void deleteRecord(String table_name, String ID) {
98 try {
99 String Query = "DELETE FROM " + table_name + " WHERE ID = \"" + ID + "\"";
100 Statement st = Conexion.createStatement();
101 st.executeUpdate(Query);
102
103 } catch (SQLException ex) {
104 System.out.println(ex.getMessage());
105 JOptionPane.showMessageDialog(null, "Error borrando el registro especificado");
106 }
107 }
108
}
Vamos a crear una clase con un formulario de registro y una con la opción de
borrar un registro. He agregado las
clases Window_Register y Window_Delete con las siguientes interfaces
gráficas.
Podemos pasar al siguiente paso.
Ahora cada vez que ejecutamos nuestro programa nos aparece la ventana principal.
Vamos a programar la clase Window.java.
MySQL_Test
El proyecto está tal como lo he desarrollado para este tutorial. Debemos recordar
que esto no es una aplicación, sino una demostración. Los métodos pueden ser
mejorados y hay algunas cosas que se pueden hacer de una mejor forma que la
que he plasmado en este tutorial, pero queda en ustedes desarrollar sus
habilidades en el uso de MySQL a partir de lo que ya les he mostrado aquí.