Você está na página 1de 42

Conectar una base de datos en

MySQL con NetBeans

NetBeans es una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a


un Entorno integrado de desarrollo (IDE) desarrollado usando la Plataforma NetBeans.
Si eres un programador y desarrollas tus aplicaciones en Java seguramente necesitars
conectar una base de datos tipo MySQL a este entorno algn da, bueno, si lo necesitas
ahora, he aqu una explicacin paso a paso de cmo conectar ambas herramientas.
Obtener lo necesario::

Primero que nada necesitas tener un servidor MySQL instalado en tu equipo o en su


defecto en la mquina que actuar como servidor de bases de datos. Recuerda que
MySQL es gratuito y puedes obtenerlo desde aqu.

El proceso de instalacin es algo en lo que no entrar en detalle, para cualquier duda


puedes consultar la documentacin oficial que se encuentra en su sitio web.

Asimismo, debes de tener el NetBeans instalado, de preferencia su ltima versin


estable (al momento de esta publicacin es la 5.5.1) que viene con el Java
Development Kit (JDK) 1.6, lo anterior puedes obtenerlo desde aqu.

Una vez que tengas ambas herramientas instaladas necesitaras el driver o conector a
la base de datos de MySQL que puedes obtener desde aqu.

Copiar

lo

necesario::

Una vez que tengas el NetBeans y el MySQL Server instalado lo que vas a necesitar es copiar
el driver que descargaste, en mi caso el mysql-connector-java-3.1.11-bin.jar dentro de la
carpeta del JDK, en mi caso es la siguiente ruta:
C:\Archivos

de

programa\Java\jdk1.6.0_01\jre\lib\ext

*NOTA: Debes tener el conector dentro de la carpeta anterior antes de ejecutar el NetBeans,
en caso de que est abierto cirralo y vulvelo a abrir.
Ya que lo hayas copiado ahora s abre el NetBeans y espera a que cargue.
Configurar

NetBeans::

Una vez que hayas abierto el NetBeans localiza la seccin de Runtime o Tiempo de
ejecucin que se localiza en el lado izquierdo de la pantalla, como se muestra a continuacin:

Al expandir la seccin de Databases o Bases de datos debe de aparecer el MySQL


(Connector/J driver), en caso contrario debes de agregarlo manualmente como se describe a
continuacin:
1. Da

un

clic

derecho

sobre

Drivers

selecciona

New

Driver.

2. En la ventana que aparece da clic en el botn de Add o Agregar y busca el archivo


.jar que descargaste anteriormente, el mismo que copiaste dentro de la carpeta del
JDK.

3. Una vez hecho lo anterior da clic en el botn de Ok o Aceptar.


Cuando realices los pasos anteriores debe de aparecer un elemento nuevo en la seccin de
Drivers

dentro

de

Databases

de

nombre MySQL

(Connector/J

driver).

Crear

probar

una

conexin::

Dentro de la seccin de Runtime o Tiempo de ejecucin > Databases o Bases de


datos >Drivers da un clic derecho sobre MySQL (Connector/J driver) y selecciona Connect
Usingo Conectar usando... para que aparezca la pantalla de configuracin de la conexin
como

se

muestra

continuacin:

En la seccin de Name o Nombre selecciona MySQL (Connector/J driver), en la seccin


Database URL cambia la parte indicada por por la direccin del servidor de bases de datos, si
es la misma computadora escribe localhost, en la parte de establece el puerto que definiste al
instalar el servidor MySQL , por defecto es el 3306, en la seccin de escribe el nombre de la
base

de

datos

la

cual

te

quieres

conectar.

Un

ejemplo

completo

serajdbc:mysql://localhost:3306/base_de_datos.
Posteriormente escribe el nombre de usuario para accesar a la base de datos y la contrasea
respectivamente.
Da un clic en el checkbox inferior para que NetBeans recuerde la contrasea durante la
conexin.
Si todo se realiz correctamente podrs ver un nuevo elemento debajo del Driver con las
especificaciones de la conexin actual, si das un clic en el smbolo '+' que aparece de lado
izquierdo del mismo podrs ver las tablas de la base de datos y realizar consultas hacia la
misma.

Implementar

el

cdigo::

Hasta aqu ya hemos establecido la conexin a la base de datos y probado su funcionamiento


desde el NetBeans, sin embargo, nos hace falta implementar el cdigo directamente en una
aplicacin. Para este ejemplo crearemos una clase de nombre Conexion que se podr
reutilizar las veces que sea necesario en cualquier tipo de aplicacin Java que requiera
conectarse

realizar

consultas

Empecemos

una

base

por

de

datos

el

en

MySQL.
principio...

1. Da un clic en el men de File o Archivo que se localiza en la esquina superior


izquierda

de

la

ventana

de

NetBeans.

2. Selecciona la opcin de Nuevo Proyecto o New Project, posteriormente en la seccin


de Categories o Categoras selecciona General y
en Projects o Proyectos seleccionaJava Application o Aplicacin Java y da un clic
en Siguiente.

*NOTA: La clase que crearemos funciona con cualquier tipo de proyecto, para fines de
este

ejemplo

utilizamos

una

aplicacin

java

convencional.

3. Posteriormente damos un nombre a la aplicacin y definimos su ubicacin, una vez


hecho

esto

damos

clic

en

el

botn

de Finish o Finalizar.

4. En

este

momento

aparece

del

lado

izquierdo

en

la

pestaa

de Projects o Proyectosuna especie de rbol jerrquico en el cual tenemos 4


carpetas, al dar clic en el smbolo '+' de la carpeta Source Packages o Paquetes
Fuente nos desplegar el nico paquete con el cual cuenta nuestra aplicacin hasta
este

punto,

dentro

de

se

crea

la

clase

Main.

5. Ahora debemos de dar un clic derecho sobre Source Packages o Paquetes Fuente y
dar un nombre al paquete, en mi caso es database. Este paquete contendr la clase
desde la cual estaremos realizando todas las consultas a la base de datos.

6. Posteriormente damos un clic derecho sobre el paquete recin creado y


seleccionamosNueva o New > Java Class. Posteriormente le damos el nombre
de Conexion y

7.

damos

clic

en

el

botn

de Finalizar o Finish.

Dentro de la clase Conexion importamos algunas libreras con el siguiente cdigo:

1
2
3
4
5

import
import
import
import
import

java.sql.Connection;
java.sql.DriverManager;
java.sql.ResultSet;
java.sql.SQLException;
java.sql.Statement;

8. Una vez que tenemos las libreras creamos los mtodos a utilizar descritos a
continuacin:
?

1
2
3

/**
* Mtodo utilizado para recuperar el valor del atributo conexion
* @return conexion contiene el estado de la conexin
*

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

*/
public Connection getConexion()
{
return conexion;
}

/**
* Mtodo utilizado para establecer la conexin con la base de datos
* @return estado regresa el estado de la conexin, true si se estableci la c
* falso en caso contrario
*/
public boolean crearConexion()
{
try {
Class.forName("com.mysql.jdbc.Driver");
conexion =
DriverManager.getConnection("jdbc:mysql://host:puerto/baseDatos","usuario","c
} catch (SQLException ex) {
ex.printStackTrace();
return false;
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
return false;
}

return true;

/**
*
*Mtodo utilizado para realizar las instrucciones: INSERT, DELETE y UPDATE
*@param sql Cadena que contiene la instruccin SQL a ejecutar
*@return estado regresa el estado de la ejecucin, true(xito) o false(error)
*
*/
public boolean ejecutarSQL(String sql)
{
try {
Statement sentencia = conexion.createStatement();
sentencia.executeUpdate(sql);
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}

return true;

/**
*
*Mtodo utilizado para realizar la instruccin SELECT
*@param sql Cadena que contiene la instruccin SQL a ejecutar
*@return resultado regresa los registros generados por la consulta
*
*/
public ResultSet ejecutarSQLSelect(String sql)

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

ResultSet resultado;
try {
Statement sentencia = conexion.createStatement();
resultado = sentencia.executeQuery(sql);
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
return resultado;

9. Finalmente compilamos el archivo localizndolo en el rbol jerrquico del lado izquierdo dando un clic
derecho sobre l y seleccionando la opcin de Compilar o Compile. Podrs utilizar la clase en
cualquier parte de tu proyecto creando una instancia de la misma en el momento que sea necesario.

*TIP: Crea nicamente una vez la conexin con el mtodo crearConexion() desde la clase Main y
pasa tu conexin como parmetro a todas las ventanas y mdulos de la aplicacin que la utilicen.

Una vez realizado lo anterior estars listo para conectarte a bases de datos en MySQL desde
NetBeans, la clase Conexin y el driver para MySQL puedes descargarlos este vnculo en un
archivo comprimido tipo rar, este manual se encuentra en formato PDF desde este vnculo.

Como conectar Mysql con Java?


julio 9, 2014 James Revelo

Conectar tus aplicaciones Java a un servidor de bases de datos es


imprescindible para la funcionalidad de una solucin de Software. Al
igual que Sql server y C#, Mysqly Java necesitan de una interfaz que
proporcione las clases necesarias para gestionar una conexin.
Para comprender el funcionamiento de este enlace comenzaremos explicando
como adherir el API de conexin a nuestros IDEs ( en este caso veremos
como hacerlo con Netbeans y Eclipse), luego implementaremos el cdigo
para abrir la conexin. En seguida veremos como ejecutar comandos y al
finalizar estudiaremos la ejecucin de procedimientos almacenados.

Que es el API de conexin?


Es un conjunto de interfaces relacionadas que permiten realizar una
conexin de un servidor de bases de datos a una aplicacin Java.
Normalmente se le denomina JDBC (Java Database Connectivity).La
idea es usar un Driver que gestione el acceso a un servidor Mysql, y as
abrir la conexin con la intencin de ejecutar comandos en la base de
datos. Este Driver puedes descargarlo desde aqu o ir al sitio
original de descargas:
http://www.mysql.com/downloads/

Como incluyo el Driver en NetBeans?


Es sencillo! Primero extraes el Driver en un lugar especifico que te parezca
cmodo, por ejemplo a la ruta C:mysqlDriver. Luego entra a Netbeans y
sitate en la barra de herramientas Projects.

Explorador de proyectos en Netbeans

Ahora haz clic derecho en la carpeta Libraries y presiona la opcin


Add JAR/FOLDER .

Aadiendo un nuevo JAR al proyecto

Ahora busca el archivo mysql-connector-java-5.1.31-bin.jar en la


carpeta descomprimida.

Seleccionando el conector

Cuando hayas incluido el archivo, el explorador de proyectos mostrar


una nueva dependencia hacia el conector. Ahora ya puedes conectar tu
aplicacin Java y una base de datos en Mysql.

Nueva dependencia en nuestro proyecto

Como instalo el Driver en Eclipse?


La instalacin en este IDE es muy similar a Netbeans. Recuerda que el
primer paso es extraer el archivo del conector en un lugar conveniente
para ti. Ahora enfocate en la barra de herramientas llamada Package
Explorer:

Explorador de paquetes en Eclipse

Ahora agregaremos la dependencia de nuestro archivo .jar. Para ello


haremos clic derecho en el proyecto y seguiremos la ruta Build
Path>Add External Archives

Aadir el arhivo JAR de conexin

Busca el archivo mysql-connector-java-5.1.31-bin.jar en donde


extrajiste el conector y seleccinalo.

Seleccion del conector MySQL

Si todo sali bien, tendrs una nueva librera externa con el nombre de
nuestro conector. Con eso ya podrs ejecutar acciones sobre las base de
datos del servidor Mysql.

Dependencia adicional a nuestro Conector

Como realizo la conexin a mi base de datos?


Primero incluiremos todas las clases JDBC desde el paquete sql:

import java.sql.*;

En este paquete se encuentran las clases para registrar la conexin a


nuestra base de datos, crear un comando, crear instancias para ejecutar
procedimientos y mucho mas.

Luego
inicializamos
el Driver con
el
mtodo
esttico Class.forName(). Este mtodo le dice a lamquina virtual
de Java que busque en tiempo real la clase en el directorio de variables
(PATH,CLASSPATH, etc) .En el caso de Netbeans y Eclipse tambin
buscar en las directivas del proyecto adicionales.

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Registro exitoso");

} catch (Exception e) {

System.out.println(e.toString());

Ahora para abrir la conexin usamos la interfaz Connection, la cual


recibe la referencia del servidorde bases de datos a travs del
mtodo getConnection() de la interfaz DriverManager:

Connection con = null;


//...

try {

con = DriverManager.getConnection(
"jdbc:mysql://localhost/TuBaseDeDatos?"
+ "user=TuUsuario&password=TuPass");

// Otros y operaciones sobre la base de datos...

} catch (SQLException ex) {

// Mantener el control sobre el tipo de error


System.out.println("SQLException: " + ex.getMessage());

El String que recibe getConnection() se refiere a al cadena de


conexin para acceder a nuestra base de datos. Debemos indicar
el nombre
del
servidor,
el nombre
de
la
base
de
datos, usuario ypassword. Hay otros parmetros adicionales, pero
estos son bsicamente los que permiten un acceso rpido y corriente a
la base de datos.
Veamos la sintaxis:

jdbc:mysql://[host:puerto],[host:puerto].../[base_de_datos][?propiedad1][=valor1]
[&propiedad2][=valor2]...

Aquellas partes que se encuentran en corchetes son opcionales.


Finalmente usa el mtodo close()para cerrar la conexin de forma
segura.

con.close();

Que hago para ejecutar un comando?


Usaremos
la
clase Statement (sentencia, esp.)
para
realizar
operaciones sobre nuestra base de datos. Crearemos una instancia de la
clase con el mtodo createStatement() de la clase Connection:

Statement cmd = con.createStatement();

Recuerda que una consulta (SELECT) retorna en una o mas filas de una
tabla. En cambio la insercin, modificacin y eliminacin cambian la
base de datos, pero no retornan en una estructura tabular.
Teniendo en cuenta esto, usaremos dos mtodos distintos de la
clase Statement dependiendo deltipo de comando. Si vas a
implementar un comando INSERT, DELETE, UPDATE, SET, etc., usas el
mtodo executeUpdate():

try {
cmd = con.createStatement();

cmd.executeUpdate("DELETE FROM HERRAMIENTA WHERE NOMBRE = 'Serrucho'");


// ...
}

Como ves, executeUpdate() recibe como parmetro la cadena que


representa al comando. En el caso de usar SELECT, emplearemos el
mtodo executeQuery(), cuyo resultado es de tipo ResultSet. Esta
clase hace parte del paquete sql que importamos, y sirve para manejar
las filas retornadas de una consulta.
Por ejemplo

ResultSet rs = null;

Statement cmd = null;

// ...

try {

cmd = con.createStatement();

rs = cmd.executeQuery("SELECT NOMBRE, EDAD FROM CIUDADANO");

// ...
}

Ahora, si queremos ver en pantalla los resultados o simplemente


acceder a cada fila, usaremos el mtodo next() de la clase ResulSet.
Este mtodo nos permitir mover un puntero de lectura a la siguiente
fila del resultado en forma secuencial, hasta que se haya recorrido la
tabla completa. Usaremos un while que lea todo el resultado.

while (rs.next()) {
String nombre = rs.getString("NOMBRE");
int edad = rs.getInt(2);
System.out.println(nombre + "-" + edad);
}

rs.close();

El
cdigo
anterior
implementa
los
mtodos getString() y getInt() de ResultSet.
Ambos
mtodos
obtienen el valor de la columna retornada, especificando el nombre de
la
columna
o
su posicin.
Es
importante
cerrar
el
objeto ResultSet con close() para desreferenciar el puntero que
estaba recorriendo la tabla.

Quisiera saber como generalizar mis comandos!


Es justamente lo que quera explicarte!, ya que hacer genrico un
comando es esencial para combinarlo con los datos proporcionados por
los controles Swing de Java.
Supn que un usuario va a eliminar un cliente de la base de datos a
travs del cdigo. Como hacer para embeber este cdigo en
el String de comando?
La respuesta esta en la clase PreparedStatement. Esta clase
permite ejecutar
varias
veces un
comando
con
tan
solo
una definicin genrica. Para ello usaremos el carcter ?, el cual
otorgacapacidad polimorfa al parmetro incluido en el comando.
Esta es la respuesta a la pregunta inicial:

PreparedStatement pCmd = con.prepareStatement("DELETE FROM CLIENTE" + " WHERE ID


= ? ");
// ...
int valor = Integer.parseInt(jTextField1.getText());
pCmd.setInt(1, valor);
pCmd.executeUpdate();

Como ves, usamos ? para indicar que el cdigo del cliente ser
variable. Luego usamos el mtodosetInt() para especificar que en el
primer ? vamos a poner el valor de la variable extrado del Text Field.

Como hago con los procedimientos almacenados?


Empleamos la clase CallableStatement. Esta clase permite especificar
el
tipo
de
parmetros
que
tiene
el
procedimiento,
ya
sea IN, OUT o INOUT. Ademas permite gestionar los resultados en
forma tabular que arroje el procedimiento, si es que los arroja, u obtener
el valor de los parmetros tipo OUT.

Para
crear
un
comando
ejecutable
usaremos
mtodo prepareCall() de la clase Connection, veamos:

el

CallableStatement cmdC = con.prepareCall(ejecucin_procedimiento);

Para hacer la llamada del procedimiento se deben usar llaves {} en la


elaboracin de la cadena para el comando. Recuerda que cuando
vimos procedimientos en Mysql usbamos la clausula CALLpara
ejecutarlo. Aqu tambin usaremos CALL para ejecutar el comando y
adems aadiremos el carcter ? para indicar el polimorfismo de los
parmetros.

CallableStatement cmdC = con.prepareCallable("{CALL proc_dos_parametros(?,?)}");

Por defecto los parmetros son de entrada, pero si en algn momento


deseas establecer que alguno es de salida, debes registrarlo mediante el
mtodo registerOutParameter().

cmdC.registerOutParameter(2,Types.INTEGER);

Este mtodo recibe dos parmetros, el primero es la posicin del


parmetro y el segundo es el tipodel parmetro. El tipo lo indicamos
mediante los atributos de la clase Types, la cual contiene todos los tipos
de datos empleados en Mysql. En este caso en particular registramos al
segundo parmetro como OUT y de tipo INTEGER.
Ahora para alimentar los parmetros de entrada volvemos a usar los
mtodos set.
Dependiendo
del
tipo
de
dato
existen
las
alternativas setInt(), setString(), setDate(), setFloat(), etc. Todo
depende de las necesidades.

Y como ejecuto un procedimiento almacenado?


Primero usaremos el mtodo execute(), cuyo valor de retorno
es booleano. Si retorna en truesignifica que el procedimiento
devuelve una o mas filas, por lo que usaremos luego el
mtodogetResultSet(). Si el valor es false, entonces el procedimiento
se ejecuta con el mtodoexecuteUpdate() ya que solo modifica la base
de datos:

if (cmdC.execute()) {
ResultSet rs = cmdC.getResultSet();
//Otras acciones...

} else {

System.out.println("No se retornaron resultados");

Igual que con los comandos normales usaremos los mtodos get para
obtener los resultados de los parmetros tipo OUT.

System.out.println("Parametro OUT:"+cmdC.getInt(1));

Amigo, puedes mostrar un ejemplo completo?


Claro que si!, fjate en la siguiente situacin:
Suponga
que
le
ha
vendido
un
proyecto
de Software a
la aseguradora ProtectYAPA para gestionar los clientes y la
informacin sobre los seguros que se ofrecen. Usted y su equipo se dan
cuenta que necesitan invocar un procedimiento almacenado en el
servidor Mysql, cuya funcin es encontrar los clientes mayores a una
edad pasada como parmetro. A travs de la interfaz, el usuario final

digitar el valor mediante un JTextField , que est contenido en


unJFrame de reglas.
Para solucionar el anterior problema implementaremos el siguiente
cdigo:

try {
con = DriverManager.getConnection(
"jdbc:mysql://PROTECTYAPA-SERVER/aseguradora?"
+ "user=admin&password=admin");

CallableStatement cmd = con.prepareCall("{CALL sp_clientes_edad( ?)} ");

cmd.setString(1, jTextField1.getText());

// Ejecutamos el comando
if (cmd.execute()) {

// Obtenemos la tabla retornada


ResultSet rs = cmd.getResultSet();

// Obtenemos cada fila del resultado


while (rs.next()) {
addFila(new Object[]{rs.getString("NOMBRE"), rs.getString("APELLIDO")});
}

else{
System.out.println("No se retornaron filas");
}

} catch (SQLException ex) {


// Mantener el control sobre el tipo de error
System.out.println("SQLException: " + ex.getMessage());

El mtodo addFila() que invocamos es la implementacin modular de la


agregacin de filas a unJTable. Su definicin es la siguiente:

public void addFila (Object fila[]){


DefaultTableModel modelo = new DefaultTableModel();
modelo = (DefaultTableModel) jTable1.getModel();
modelo.addRow(fila);
}

Algn ejemplo con un parmetro OUT?


Por supuesto!, miremos
la empresa de seguros:

otro

requerimiento

en

el Sofware de

Se desea llamar a un procedimiento almacenado en la base de datos


llamadosp_mejor_vendedor.
Este
procedimiento
posee
dos parmetros de salida que reciben el cdigo del mejor vendedor
de seguros y la cantidad acumulada de ventas que realiz en el mes.
La solucin propuesta por el equipo es la siguiente:

try {
con = DriverManager.getConnection(
"jdbc:mysql://PROTECTYAPA-SERVER/aseguradora?"
+ "user=admin&password=admin");
CallableStatement cmd = con.prepareCall("{CALL sp_mejor_vendedor( ?, ?)} ");

// Registramos los dos parmetros de salida


cmd.registerOutParameter(1, Types.INTEGER);
cmd.registerOutParameter(2, Types.INTEGER);

// Ejecutamos el procedimiento

cmd.executeUpdate();

// Obtenemos el valor de ambos parametros


int idVendedor = cmd.getInt(1);
int monto = cmd.getInt(2);

// Imprimimos los resultados del procedimiento


System.out.println(idVendedor + "-" + monto);

} catch (SQLException ex) {


// Mantener el control sobre el tipo de error
System.out.println("SQLException:" + ex.getMessage());
}

Estos pequeos ejemplos que acabo de mostrarte han sido construidos


de forma secuencial yexplicativa, pero seria conveniente que uses el
poder de la Programacin Orientada a Objetoscuando desees
conectar tu aplicacin Java a Mysql.
Puedes definir una clase Conexion y atribuirle mtodos para ejecutar
comandos que devuelvan filas, ejecutar comandos que solo modifiquen
la base de datos, abrir la conexin, cambiar de base de datos, etc.
Este enfoque te permitir generalizar tus acciones sobre la base de
datos en tu aplicacin, lo que otorgara flexibilidad en el desarrollo si
trabajas con un equipo.

Conectar Java con MySQL en


Netbeans
11 marzo, 2015 Ferchu Java, MySQLSin comentarios

Bueno, sinceramente llevo poco tiempo trabajando con Java, aunque de a poco
estoy tomndole aprecio a este excelente lenguaje de programacin. S en
cambio llevo muchos aos trabajando en web, ms precisamente con PHP y
MySQL. En esta ocasin voy a explicar de forma muy resumida, los pasos a
seguir para conectar Java con MySQL.
Java puede conectarse a mltiples bases de datos, con la que mejor se lleva es
con Oracle, sin embargo en ocasiones puede ser que los que venimos de la
web, al tener la necesidad de hacer una aplicacin de escritorio, nos sintamos
ms acostumbrados con MySQL.
En primer lugar, para realizar este ejemplo debemos tener instalado tres cosas
en nuestro sistema:

La mquina virtual de Java (Para ejecutar Java, claro est)

MySQL (en mi caso yo tengo instalado Xampp que viene con Apache y
MySQL, entre otros servicios

Netbeans (Con Java instalado)

Comencemos!
MySQL
En primer lugar vamos a crear una base de datos, a la cual yo
llamar: java_mysql. La mista tendr una sola tabla llamada tareas con el
siguiente cdigo:
CREATETABLEtareas(
id_tareaint(10)unsignednotnullauto_incrementprimarykey,
titulovarchar(50)notnull,

descripcionvarchar(255)notnull,
nivel_de_prioridadtinyint(1)notnull
);

Java
Vamos a abrir Netbeans y vamos a crear un nuevo proyecto, yendo a File ->
New Project -> Java -> Java Application.

Vamos a ponerle un nombre y vamos a guardarlo en alguna parte de nuestra


mquina.
Vamos a borrar todo lo que est dentro de la carpeta source (o src) y dentro
vamos a crear dos paquetes, uno al que yo llamar modelos y otro al que
llamar servicios.

Ahora, para conectar Java a MySQL tenemos que agregar un librera que se
encargar de hacer esa magia. As que dentro que pulsando botn derecho
sobre la carpeta Libraries, vamos a ir a Add Library

Y agregamos la librera MySQL JDBC Driver, primero seleccionndola y luego


pulsando Add Library.

Bueno, ya tenemos todo, no nos falta nada. Ya podemos empezar a escribir


cdigo Java.

Dentro del paquete modelos, vamos a crear una clase, a la que yo


llamar Tarea.java, con el siguiente cdigo:
packagemodelos;
publicclassTarea{
privatefinalIntegerid_tarea;
privateStringtitulo;
privateStringdescripcion;
privateIntegernivel_de_prioridad;
publicTarea(){
this.id_tarea=null;
this.titulo=null;
this.descripcion=null;
this.nivel_de_prioridad=null;
}
publicTarea(Integerid_tarea,Stringtitulo,Stringdescripcion,
Integernivel_de_prioridad){
this.id_tarea=id_tarea;
this.titulo=titulo;
this.descripcion=descripcion;
this.nivel_de_prioridad=nivel_de_prioridad;
}
publicIntegergetId_tarea(){
returnid_tarea;
}
publicStringgetTitulo(){
returntitulo;
}
publicStringgetDescripcion(){
returndescripcion;
}
publicIntegergetNivel_de_prioridad(){
returnnivel_de_prioridad;
}
publicvoidsetTitulo(Stringtitulo){
this.titulo=titulo;

}
publicvoidsetDescripcion(Stringdescripcion){
this.descripcion=descripcion;
}
publicvoidsetNivel_de_prioridad(Integernivel_de_prioridad){
this.nivel_de_prioridad=nivel_de_prioridad;
}
@Override
publicStringtoString(){
return"Tarea{"+"id_tarea="+id_tarea+",titulo="+titulo+
",descripcion="+descripcion+",nivel_de_prioridad="+
nivel_de_prioridad+'}';
}
}

Una clase, nada nuevo, que va a representar el modelo de una tarea.

Conectando JAVA con MySQL


Bien, ahora creamos la clase que va a conectar nuestra aplicacin con MySQL,
yendo al paquete servicios, vamos a crear una nueva clase
llamada Conexion.java con el siguiente cdigo:
packageservicios;
importjava.sql.*;
publicclassConexion{
privatestaticConnectioncnx=null;
publicstaticConnectionobtener()throwsSQLException,
ClassNotFoundException{
if(cnx==null){
try{
Class.forName("com.mysql.jdbc.Driver");
cnx=
DriverManager.getConnection("jdbc:mysql://localhost/java_mysql","root",
"");

}catch(SQLExceptionex){
thrownewSQLException(ex);
}catch(ClassNotFoundExceptionex){
thrownewClassCastException(ex.getMessage());
}
}
returncnx;
}
publicstaticvoidcerrar()throwsSQLException{
if(cnx!=null){
cnx.close();
}
}
}

Esta clase tendr un mtodo esttico llamado obtener(), el cual va a


devolvernos una instancia de conexin y de no haber una previa va crear una:
cnx=DriverManager.getConnection("jdbc:mysql://localhost/java_mysql",
"root","");

Esto gracias al mtodo getConnection(), el cul recibir como primer


parmetro el tipo de base de datos (MySQL) y la ubicacin de la base de datos,
en mi caso, como estoy trabajando en un entorno local, ser localhost. El
segundo parmetro es el usuario y el tercero la contrasea.
A su vez este mtodo puede disparar dos excepciones, SQLException, si
surge algn error, por ejemplo que no se pueda conectar a la base de datos,
y ClassNotFoundException, en caso de que no encuentre la librera.
Y por ltimo el mtodo, tambin esttico, cerrar(), que como su nombre lo
indica, cerrar la conexin, en caso de que haya alguna abierta.
Consultas

Para hacer las consultas con la base de datos, dentro del paquete servicios,
creamos una clase con el nombre: Tareas_servicio.java con el siguiente
cdigo:
packageservicios;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importmodelos.Tarea;
publicclassTareas_servicio{
privatefinalStringtabla="tareas";
publicvoidguardar(Connectionconexion,Tareatarea)throws
SQLException{
try{
PreparedStatementconsulta;
if(tarea.getId_tarea()==null){
consulta=conexion.prepareStatement("INSERTINTO"+
this.tabla+"(titulo,descripcion,nivel_de_prioridad)
VALUES(?,?,?)");
consulta.setString(1,tarea.getTitulo());
consulta.setString(2,tarea.getDescripcion());
consulta.setInt(3,tarea.getNivel_de_prioridad());
}else{
consulta=conexion.prepareStatement("UPDATE"+this.tabla+
"SETtitulo=?,descripcion=?,nivel_de_prioridad=?WHEREid_tarea
=?");
consulta.setString(1,tarea.getTitulo());
consulta.setString(2,tarea.getDescripcion());
consulta.setInt(3,tarea.getNivel_de_prioridad());
consulta.setInt(4,tarea.getId_tarea());
}
consulta.executeUpdate();
}catch(SQLExceptionex){

thrownewSQLException(ex);
}
}
publicTarearecuperarPorId(Connectionconexion,intid_tarea)throws
SQLException{
Tareatarea=null;
try{
PreparedStatementconsulta=conexion.prepareStatement("SELECT
titulo,descripcion,nivel_de_prioridadFROM"+this.tabla+"WHERE
id_tarea=?");
consulta.setInt(1,id_tarea);
ResultSetresultado=consulta.executeQuery();
while(resultado.next()){
tarea=newTarea(id_tarea,resultado.getString("titulo"),
resultado.getString("descripcion"),
resultado.getInt("nivel_de_prioridad"));
}
}catch(SQLExceptionex){
thrownewSQLException(ex);
}
returntarea;
}
publicvoideliminar(Connectionconexion,Tareatarea)throws
SQLException{
try{
PreparedStatementconsulta=conexion.prepareStatement("DELETE
FROM"+this.tabla+"WHEREid_tarea=?");
consulta.setInt(1,tarea.getId_tarea());
consulta.executeUpdate();
}catch(SQLExceptionex){
thrownewSQLException(ex);
}
}
publicList<Tarea>recuperarTodas(Connectionconexion)throws
SQLException{
List<Tarea>tareas=newArrayList<>();

try{
PreparedStatementconsulta=conexion.prepareStatement("SELECT
id_tarea,titulo,descripcion,nivel_de_prioridadFROM"+this.tabla+"
ORDERBYnivel_de_prioridad");
ResultSetresultado=consulta.executeQuery();
while(resultado.next()){
tareas.add(newTarea(resultado.getInt("id_tarea"),
resultado.getString("titulo"),resultado.getString("descripcion"),
resultado.getInt("nivel_de_prioridad")));
}
}catch(SQLExceptionex){
thrownewSQLException(ex);
}
returntareas;
}
}

Esta clase cuenta con los mtodos capaces de realizar las distintas operaciones
en una tabla.
El mtodo guardar(), que recibir como parmetro una instancia de conexin
y un objetoTarea. Si el objeto tiene el valor de id nulo, va a hacer un insert, de
lo contrario un updateen el registro con dicho id.
El mtodo recuperarPorId(), recibir la conexin y un id, y nos devolver un
objeto Tareacorrespondiente a ese id, de lo contrario nos devolver un valor
null, en caso de que no encuentre ningn registro con ese id.
El mtodo eliminar() recibir un una instancia de conexin y el objeto Tarea
que debe eliminar.
Y finalmente recuperarTodas() tambin recibir una instancia de conexin y
nos devolver una lista con todas las tareas.
Bueno a continuacin dejo un ejemplo muy sencillo con interfaz grfica, para
verificar cmo queda.

Saludos!

Instalacin del conector J de


MySQL en Netbeans 6.9
LICENCIA

@include Apache 2 Apache HTTP aviAWT Componentes Conector/J Conector J - MySQL Crystal

ReportCurso JSP Ejemplo Expresiones PHPFileZilla FTP Server Format HM NIS EditHola
Mundo IDE

J2EE JavaJButton JCheckBox JComboBoxJDBC JDK 6 update 11JDK 6

update 14 JDK 6 update 20 JDK 6 update 20


(Linux)

jFrame JLabelJPanel JRadioButton

BoxKENAI

Linux Mercury Mail Transport System MySQL MySQL 5.1 NetbeansNetbeans 6.5 NetBeans

6.7NetBeans 6.8
reservadas

JSP/SERVLETSJTextField JvDBSearchCombo

Netbeans 6.9Netbeans 6.9 (Linux) Netbeans

7.0 NetBenas 6.8 NSIS Palabras

PHP PHP5phpMYAdmin POO servletStringToWideChar StrToCrr StrToDateStrToDateTime StrToInt

StrToInt64StrToInt64Def StrToIntDef StrToTimeSun

Microsystem

swingTButton

XAMPPXDEBUG
BLOGROLL

IES Gonzalo Nazareno

DELPHI

About.com

TComboBox TDBNavigatorTEdit TJvDateEdit TPageControlTTabSheet Workbench

Club delphi

Delphi Resource Center

Dr.Bob's Delphi Clinic

IDE

Eclipse IDE

NetBeans IDE

JAVA

GUJ (Mexico)

GUJ (Uruguay)

Java Hispano

Java User Groups(JUGs)

java.net

Univ. Navarra Aprenda Java desde 1

JSP/SERVLETS

Eclipse + JSP

Recursos JSP

Univ. Huelva JSP v2.0 / Servlets v2.4

Univ. Navarra Aprenda Servlets de Java

PHP

Manual PHP

PHP Classes Repository

Recursos PHP

PYTHON

Python Official Website

SGBD

MySQL

Oracle Corporation (Java)

PostgreSQL

VISITAS:

566,182 hits

META

Registrarse

Acceder

RSS de las entradas

RSS de los comentarios

WordPress.com
buscar

6 Votes

En una entrada de los ltimos das hemos descargado el conector J para MySQL con la
finalizad de utilizar JDBC (Java Database Connectivity), es decir mysql-connector-java5.1.12.zip (3.8 M). En mi caso, he descomprimido el archivo en la carpeta de Netbeans 6.9 y
como resultado de la descompresin se obtenienen una serie de carpetas y archivos.

El ms significativo de todos los ficheros se corresponde con la librera denominada mysqlconnector-java-5.1.12-bin.jar. Ahora tenemos que dar de alta a esta librera en el IDE de
Netbeans para poder utilizar las diversas funciones de acceso y manipulacin de datos y
metadatos en MySQL.
Para ello, iniciamos una sesin de Netbeans 6.9 y seleccionamos del men principal
Herramientas y Bibliotecas, aparecer

Hacemos click en Nueva Biblioteca y

pantalla o cuadro de dilogo en el hemos dado nombre a la biblioteca que vamos a incorporar.
Hemos llamado a esta biblioteca ConectorMySQL, si ahora hacemos Aceptar

Ahora con ayuda del botn Agregar archivo jar/Carpeta localizamos el archivo previamente
descargado y una vez descomprimido denominado
mysql-connector-java-5.1.12-bin.jar

Para finalizar hacemos click en Aceptar.


Para poder incorporar esta librera a un proyecto supongamos que el rbol de
capetas/archivos de un proyecto es tal como el que sigue:

Hacemos botn derecho en el nodo Libraries y aparecer una caja con tres opciones

Seleccionamos y aparecer el cuadro de


dilogo

Como vemos la libreria/biblioteca denominada ConectorMySQL aparece en la relacin de


bibliotecas, pulsamos Aadir biblioteca y sta se incorporar a nuestro proyecto. Si
desplegamos el nodo Libraries ahora tendremos la librera incorporada

y ya podemos hacer uso de dicha


librera.

Configuracin de MySQL con NetBeans Web Application Development 7CM5


Ortiz Ramrez Diana 26/03/2012 Configuracin de MySQL con NetBeans Ortiz
Ramrez Diana 26/03/2012 2 Desarrollo. I. Configurar las propiedades del
Servidor MySQL. 1. Se asume que se encuentra instalado MySQL, que en este
caso se realiza con XAMPP. 2. Abrir el IDE NetBeans. En el repositorio
seleccionar la pestaa de Services y digitar clic derecho en Databases >
Register MySQL Server para mostrar el cuadro de dilogo de MySQL Server
Properties. 3. En la ventana mostrada MySQL Server Properties, la pestaa

inicial es Basic Properties. Verificar los datos predeterminados. Por ejemplo,


confirmar el nombre del servidor y del puerto. El nombre de usuario y la
contrasea se pueden cambiar, pero se sugiere conservar los valores sugeridos
para las pruebas. Configuracin de MySQL con NetBeans Ortiz Ramrez Diana
26/03/2012 3 4. En la misma ventana, seleccionar la pestaa Admin Properties.
Ingresar o navegar en el administrador del sistema para localizar la ruta de las
aplicaciones solicitadas. La ruta puede variar segn la plataforma y la
instalacin particular. II. Inicio del servidor MySQL. Antes de la conexin al
servidor de bases de datos MySQL, se debe asegurar que se encuentra activa
la ejecucin de este servidor. Si no hay conexin, se indicar MySQL Server at
localhost: 3306 (not connected). Si la conexin existe se muestra una imagen
como la siguiente. Configuracin de MySQL con NetBeans Ortiz Ramrez Diana
26/03/2012 4 III. Creacin y conexin de la base de datos. 1. Seleccionar con
clic derecho en MySQL Server y digitar en Create Database. 2. En la ventana
mostrada, ingresar el nombre de la base de datos, por ejemplo
mynewdatabase. Clic en OK. 3. Al digitar OK, Se actualiza el repositorio en la
pestaa de Services con la base de datos mynewdatabase recin creada.
Configuracin de MySQL con NetBeans Ortiz Ramrez Diana 26/03/2012 5 IV.
Creacin de las tablas. 1. Creacin de las tablas con el editor SQL. En el
repositorio, expandir el rbol de carpetas de la base de datos mynewdatabase
y seleccionar mynewdatabase > Tables > Execute Command. a. En la seccin
central se muestra el rea de trabajo SQL Command 1 del editor SQL.
Configuracin de MySQL con NetBeans Ortiz Ramrez Diana 26/03/2012 6 b. En
el editor SQL, se ingresa la siguiente consulta, en la cual se define la creacin
de la tabla counselor. CREATE TABLE Counselor ( id SMALLINT UNSIGNED NOT
NULL AUTO_INCREMENT, firstName VARCHAR (50), nickName VARCHAR (50),
lastName VARCHAR (50), telephone VARCHAR (25), email VARCHAR (50),
memberSince DATE DEFAULT '0000-00-00', PRIMARY KEY (id) ); c. Para ejecutar
la instruccin SQL, seleccionar la opcin Run SQL o digitar clic derecho en el
rea de trabajo del editor y seleccionar la opcin Run Statement. Configuracin
de MySQL con NetBeans Ortiz Ramrez Diana 26/03/2012 7 d. En el repositorio
se muestra la tabla counselor creada y sus campos predeterminados. En la
ventana Output se muestra el mensaje de xito. Configuracin de MySQL con
NetBeans Ortiz Ramrez Diana 26/03/2012 8 2. Creacin de las tablas en la
ventana de dilogo de Create Table. a. En el explorador de la base de datos,
seleccionar mynewdatabase > Tables > Create Table. b. En la ventana
mostrada, ingresar el nombre de la tabla, por ejemplo subject. Configuracin
de MySQL con NetBeans Ortiz Ramrez Diana 26/03/2012 9 c. Digitar el botn
Add column. En la ventana mostrada ingresar los datos indicados. Clic en OK.
Se actualiza el contenido de la ventana anterior. d. Repetir el inciso anterior
para generar los campos restantes. e. La tabla debe mostrar una apariencia
similar a la siguiente. Configuracin de MySQL con NetBeans Ortiz Ramrez
Diana 26/03/2012 10 f. Observar la actualizacin de la tabla en la base de
datos. V. Uso de la base de datos. a. En la base datos mynewdatabase se

selecciona Tables>Execute Command. Al centro se muestra el editor de


comandos SQL. b. Ingresar en el editor SQL la siguiente instruccin. INSERT
INTO Counselor VALUES (1, 'Ricky', '"The Dragon"', 'Steamboat','334 612-5678',
'r_steamboat@ifpwafcad.com', '1996-01-01') Configuracin de MySQL con
NetBeans Ortiz Ramrez Diana 26/03/2012 11 c. Para ejecutar la consulta SQL,
clic derecho sobre el editor y seleccionar Run Statement. En la ventana Output
se muestra el resultado de xito. d. Para visualizar los datos de la tabla,
seleccionar counselor > View Data. Configuracin de MySQL con NetBeans
Ortiz Ramrez Diana 26/03/2012 12 e. Los datos de la tabla se muestran en la
ventana de ejecucin de la consulta. f. Las tablas se pueden borrar,
seleccionndolas y digitando en Delete. Configuracin de MySQL con NetBeans
Ortiz Ramrez Diana 26/03/2012 13 VI. Ejecucin de un script SQL. 1. Ejercicio.
a. Borrar las dos tablas counselor y subject, creadas en el desarrollo anterior. b.
Crear un archivo script SQL que contenga la estructura de las tablas
mencionadas. Guardarlo con el nombre y extensin ifpwafcad.sql. c. Para la
ejecucin del script SQL, en el men principal del IDE, seleccionar File > Open
File. En la ventana de archivos mostrada, localizar y abrir el archivo script el
cual se abrir automticamente en el editor SQL. Se debe asegurar que existe
conexin con la base de datos mynewdatabase, seleccionando la lista
desplegable de Connection. d. Para ejecutar el script, se procede como se
indica en el paso IV. e. Una vez ejecutado el script, verificar la construccin de
las tablas y la actualizacin de la base de datos. Configuracin de MySQL con
NetBeans Ortiz Ramrez Diana 26/03/2012 14 Conclusiones En esta prctica se
observo cmo poder conectar netbeans con mysql para poder hacer tablas de
forma segura y mejorar el rendimiento de la aplicacin de mysql.

Você também pode gostar