You are on page 1of 13

UNIVERSIDAD MODULAR ABIERTA

FACULTAD DE CIENCIAS ECONÓMICAS


LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA

Siguiendo los pasos que se muestran a continuación podrás crear una aplicación Java que
gestione una simple lista con datos de personas, almacenada en una base datos de
manera que persistan los datos de los contactos aunque se cierre la aplicación. Esta aplicación
podrá servirte de base para crear otras aplicaciones similares que realicen la gestión de otras
bases de datos.
Para la creación completa de la aplicación se usarán distintas tecnologías que podrías
cambiar por otras si lo estimaras oportuno, pero este tutorial se centrará en las siguientes:

 Java, como lenguaje de programación.


 NetBeans, como entorno de desarrollo.
 Java DB (Derby), como gestor de la base de datos.
 JPA (Java Persistence API), como API para el acceso a la base de datos.
 JavaFX, como API para el interfaz de usuario.
 SceneBuilder, como diseñador del interfaz de usuario.

Inicialmente deberás crear una aplicación Java estándar, asignándole el


nombre AgendaContactos, a la que posteriormente se le añadirá un interfaz gráfico más
amigable para el usuario:
File > New Project > Java > Java Application

Base de datos Java DB

Registro de la base de datos en NetBeans


Con el fin de que la aplicación puede ser fácilmente utilizable por cualquier usuario, sin
necesidad de que tenga que disponer de un servidor de base datos como MySQL (cuya
instalación puede ser compleja para un usuario normal), se va a utilizar como gestor de base
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


de datos el que incorpora Java, de manera que el usuario simplemente necesitará ejecutar la
aplicación de la Agenda de Contactos para que pueda utilizarla, sin necesidad de tener otros
requisitos para usar una base de datos. Java ofrece dentro de su kit de desarrollo el gestor
de base de datos Java DB que es una distribución por parte de Oracle de la base
de datos Derby de Apache. Debes tener en cuenta que el lenguaje SQL de Java DB
tiene ligeras diferencias con el lenguaje SQL de MySQL, por lo que debes tener en cuenta
su página de referencia del lenguaje SQL de JavaDB.
Para que la gestión de la base de datos de Contactos resulte más cómoda, conviene registrar
la base de datos en NetBeans. Esto puedes hacerlo cómodamente desde la
pestaña Services seleccionando, desde el menú contextual del elemento Databases, la
opción New Connection.

Selecciona la opción Java DB (Embedded) para utilizar el gestor de base de datos que se
ha comentado anteriormente, de manera que no se requiera un servidor de base de datos
externo a la aplicación que se está desarrollando. Si se prefiere utilizar un servidor de base de
datos como MySQL, se deberá seleccionar la opción correspondiente.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


En la ventana de configuración de la conexión con la base de datos, indica la ruta a la
carpeta donde has creado el proyecto junto con el nombre deseado para la base de
datos (en este ejemplo BDAgendaContactos), el nombre de usuario (indica APP que es el
usuario por defecto) y contraseña (la que quieras) que se desea utilizar para autorizar la
conexión (indica los valores que desees), selecciona la opción recordar contraseña
(Remember password) para que se almacene y no sea necesario introducirla cada vez que se
desee hacer la conexión a la base de datos desde el entorno de NetBeans, y añade el
texto ;create=true a la dirección (URL) de conexión a la base de datos con el fin de
que se cree la base de datos en caso de que no exista (que es el caso actualmente, ya
que no se ha creado anteriormente dicha base de datos).

Para JavaDB debes indicar el esquema (Schema) de la base de datos que va a utilizar las
herramientas de NetBeans, por lo que debes dejar el que aparece por defecto: APP, que es el
utilizado para no indicar un usuario concreto de conexión a la base de datos.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA

En la siguiente ventana podrás asignar un nombre a la conexión con la base de datos,


aunque puedes dejar el que aparece por defecto.

Una vez finalizado este proceso de registro de la base de datos en NetBeans, aparecerá
su conexión en el árbol Databases, y a patir de este momento será más sencillo realizar
diversas operaciones con la base de datos desde el propio entorno de desarrollo NetBeans.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA

Comprueba también que en la carpeta donde has creado el proyecto se ha creado una nueva
carpeta correspondiente a la base de datos.

Creación de las tablas


Las tablas que van a formar parte de la base de datos se van a crear desde el mismo NetBeans
utilizando un archivo SQL que contenga las sentencias SQL correspondientes a la creación de
las tablas.
Con el fin de mantener organizado el código fuente de la aplicación, conviene crear un
paquete que almacene el código SQL de manera separada del código Java propio de la
aplicación Java que se desarrollará posteriormente.
Vuelve a la pestaña Projects, y utiliza el menú contextual de la carpeta Source
Packages para seleccionar la opción New > Java Packagee indica el nombre para el
paquete de fuentes que almacenará los archivos SQL. Un buen nombre puede ser el mismo
que se ha utilizado para la aplicación, seguido de .sql:
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA

Crea dentro de esta carpeta un archivo SQL desde su menú contextual, usando la
opción New > Other > (Categories) Other > SQL file o New > SQL File si ya has usado
anteriormente esta opción. Asigna un nombre al archivo, por ejemplo, CreacionTablas. Una
vez abierto el archivo, asegúrate de seleccionar en su parte superior la conexión con
la base de datos que se ha creado anteriormente, para que la ejecución de las sentencias
SQL que se escriban se ejecuten sobre la base de datos deseada.

Como este tutorial no es más que un ejemplo de una posible base de datos, se va a crear
una tabla para almacenar una serie de datos de personas. Los datos que se indicarán no
tendrán mucho sentido en algunos casos, pero se intenta crear un ejemplo que
utilice diversos tipos de datos, y de ahí que haya algunos datos añadidos de manera uno
tanto forzada. También con el fin de crear un ejemplo con tablas relacionadas, se va a crear
una segunda tabla con las provincias españolas que se relacionará con la tabla de
personas, para indicar en qué provincia reside cada una.
Para este ejemplo se ha creado el siguiente script SQL que se encargará de crear las
tablas:
CREATE TABLE PROVINCIA (

ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,

CODIGO CHAR(2),
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


NOMBRE VARCHAR(20) NOT NULL,

CONSTRAINT ID_PROVINCIA_PK PRIMARY KEY (ID)

);

CREATE TABLE PERSONA (

ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, -- Id autonumérico

NOMBRE VARCHAR(20) NOT NULL,

APELLIDOS VARCHAR(40) NOT NULL,

TELEFONO VARCHAR(15),

EMAIL VARCHAR(30),

PROVINCIA INTEGER NOT NULL,

FECHA_NACIMIENTO DATE,

NUM_HIJOS SMALLINT,

ESTADO_CIVIL CHAR(1),

SALARIO DECIMAL(7,2),

JUBILADO BOOLEAN,

FOTO VARCHAR(30),

CONSTRAINT ID_PERSONA_PK PRIMARY KEY (ID),

CONSTRAINT PROV_PERSONA_FK FOREIGN KEY (PROVINCIA) REFERENCES PROVINCIA (ID)

);

Puedes ver que cada tabla dispone de un campo ID como identificador para cada registro,
que es autonumérico y que se utilizará como clave primaria de cada tabla. Ahí puedes
ver que la declaración de este tipo autonumérico (GENERATED ALWAYS AS IDENTITY) es
diferente a MySQL, por lo que si la base de datos se desea conectar a un servidor MySQL se
deben modificar algunos aspectos del lenguaje SQL como ese.
Observa también que no sólo se han creado columnas de tipo VARCHAR, sino también
algunas de tipo numérico con distintos tamaños (INTEGER, SMALLINT, DECIMAL, etc), así
como la columna JUBILADO de tipo BOOLEAN o la fecha de nacimiento de tipo DATE, para
poder conocer cómo se pueden gestionar esos otros tipos de datos desde Java. Consulta la
documentación de los tipos de datos de Derby para conocerlos mejor.
La relación entre las 2 tablas se lleva a cabo mediante la clave foránea PROVINCIA de la
tabla PERSONA que hará referencia a un valor numérico entero correspondiente a una ID de
la tabla PROVINCIA. Consulta la documentación de la cláusula CONSTRAINT de Derby para
conocer mejor su uso.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


Para ejecutar el script SQL anterior, haz clic sobre el botón Run SQL de la barra de
herramientas asociada a este archivo.

Como resultado de la ejecución, deberían aparecer, en la pestaña Services, las tablas que se
han creado, y si vas desplegando el contenido de cada una, verás los nombres de las
columnas.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA

Crear una base de datos MySQL desde Java: con tablas y registros
Cuando desarrollamos Software, en múltiples ocasiones debemos manejar datos e
información de los usuarios, lo que implica la creación de la base de datos y las
tablas necesarias para almacenar los registros, esta tarea se realiza antes del uso
de la aplicación o en la instalación del Software, hoy veremos cómo podemos crear
una base de datos MySQL desde Java, estableceremos conexión con el
Servidor MySQL donde deseamos crear la BD, para dejar listo donde alojaremos
nuestra información.

Crear una base de datos MySQL desde Java con tablas y registros
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


Para crear una base de datos MySQL desde Java seguiremos los siguientes
pasos, es importante no saltarse ninguno de los descritos a continuación.

Creación del proyecto:

Lo primero que debemos hacer es crear un proyecto en Java Netbeans o en tu IDE


favorito, tipo Java Aplication, con la siguiente interfaz en un JFrame.

Importar la librería para conectarnos a MySQL

Antes de escribir código, haremos el import de la librería necesaria para conectarnos


a MySQL, esta es imprescindible, sin ella no podríamos establecer la conexión con
la base de datos.

Luego buscamos la librería mysql-connector-java-5.1.18-bin.jar.

Conexión de la base de datos:

Para esto crearemos una clase “Conexion.java” que contendrá los parámetros de
conexión a la base de datos, veamos:

Código de Conexion.java

/*
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bdmysqljava;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
*
* @author DeveloperTwo
*/
public class Conexion {

public Connection conexion;


public Statement sentencia;
public ResultSet resultado;

public void ConectarBasedeDatos(String bd){


try {
final String Controlador = "com.mysql.jdbc.Driver";
Class.forName( Controlador );
final String url_bd = "jdbc:mysql://localhost:3306/";
final String url_bd2 = "jdbc:mysql://localhost:3306/"+bd;
if(bd.equals("")){
conexion = DriverManager.getConnection(url_bd,"root","root");
}else{
conexion = DriverManager.getConnection(url_bd2,"root","root");
}
sentencia = conexion.createStatement();
} catch (ClassNotFoundException | SQLException ex) {
JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion",
JOptionPane.ERROR_MESSAGE);
}
}
public void DesconectarBasedeDatos() {
try {
if (conexion != null ) {
if(sentencia != null) {
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


sentencia.close();
}
conexion.close();
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
public Connection getConnection(){
return conexion;
}
}
Si nos fijamos en la clase anterior no definimos una base de datos a la cual
conectarnos y es un poco lógico, debido a que deseamos crear la base de datos
desde Java.

Declaranto la variable para la conexión

public class Frm1 extends javax.swing.JFrame {


Conexion c = new Conexion();
El código anterior debes ubicarlo en la parte superior del código de tu formulario
(JFrame).

Código del botón crear base de datos

Con el código anterior además de crear la base de datos habilitamos el botón para
crear la tabla, ya que si no contamos con la base de datos creada no podríamos
crear tablas.
UNIVERSIDAD MODULAR ABIERTA
FACULTAD DE CIENCIAS ECONÓMICAS
LICENCIATURA EN INFORMÁTICA
TÉCNICO EN SOFTWARE

TEMA: TABLAS CON MYSQL - JAVA


Código del botón crear tabla

El código utilizado para la creación de la tabla es muy básico; definimos 4 campos


y uno de ellos como llave primaria o primary key, podrás completar tu tabla con los
códigos y comodines necesarios, luego habilitamos el botón para insertar registros.

Botón insertar registro

De igual manera podemos insertar todos los registros necesarios en la tabla, para
efectos de este artículo solo insertamos 1.

Al ejecutar la aplicación podrás ver en tu servidor MySQL; la base de datos creada,


la tabla y el registro dentro de ella.

You might also like