Вы находитесь на странице: 1из 8

M. en C. Alejandro Cifuentes A.

Pgina 1

Tema: Conexin de NetBeans con MySQL.

El primer paso es la instalacin del paquete XAMPP que posee el administrador de bases de datos MySQL. Dentro de
MySQL se crea la base de datos prueba y una tabla persona. Despus se utilizan estos recursos desde NetBeans.

Desarrollo.
Parte I. Apache.
En el presente ejercicio se utiliza XAMPP que posee la base de datos MySQL.
En la URL https://www.apachefriends.org/index.html se descarga el xampp-win32-1.8.3-4-VC11-installer.
Para la instalacin se digita doble clic en el icono del paquete y se siguen las instrucciones de instalacin:






Para habilitar los servicios, en el botn Inicio se abre el XAMPP Control Panel y en la ventana del panel de control se
digita el botn Start en Apache y MySQL:


Parte II. MySQL.
M. en C. Alejandro Cifuentes A. Pgina 2

Para trabajar con MySQL, en el men Inicio se abre, como administrador, una ventana de comandos o Smbolo de
sistema:
Inicio > Todos los programas > Accesorios > Smbolo del sistema


Para trabajar en MySQL en la ventana de comandos se ingresa la siguiente ruta:
C:\xampp\mysql\bin>

Para trabajar con una base de datos en la ruta indicada se ingresa la siguiente instruccin para MySQL:
mysql -h localhost -u root

Donde localhost puede ser 127.0.0.1, root es el usuario y no posee contrasea en este caso. Como se indica en la figura:
C:\xampp\mysql\bin> mysql -h localhost -u root


En el cursor mysql>_ se ingresa la instruccin show para mostrar las bases de datos disponibles, create para crear una
nueva base de datos y use para utilizar esa base de datos. Cada instruccin termina con el carcter punto y coma, por
ejemplo:
mysql> show databases;
mysql> create database prueba;
mysql> use prueba;


M. en C. Alejandro Cifuentes A. Pgina 3

Para crear una tabla persona en la base de datos prueba se utiliza la instruccin create, por ejemplo:
mysql> create table persona (
-> id smallint auto_increment,
-> primary key(id),
-> nombre varchar(60),
-> email varchar(60));

Para mostrar la creacin de la tabla persona y su estructura, se ingresa la instruccin describe, por ejemplo:
mysql> describe persona;


Para ingresar datos en la tabla persona se utiliza la instruccin insert y para ver el contenido de la tabla se utiliza la
instruccin select, por ejemplo:


Parte III. JDBC.
Para habilitar el conector JDBC para MySQL, en NetBeans se crea un nuevo proyecto en Java>Java Application.


M. en C. Alejandro Cifuentes A. Pgina 4

Ingresar el nombre ConexionMySQL del proyecto y digitar en Finish para crearlo. Para agregar la librera de MySQL,
digitar clic derecho en Libraries>Add Library:


En la ventana mostrada, seleccionar el MySQL JDBC Driver y visualizarlo en las libreras.


Parte IV. Java.
Para crear una clase java en el proyecto, seleccionar New File en el men y en la ventana mostrada Java>Java Class:


Digitar en Next. En la siguiente ventana ingresar el nombre PruebaMySQL para la clase. Digitar en Finish:

M. en C. Alejandro Cifuentes A. Pgina 5


En el editor, ingresar el siguiente cdigo:
1. import java.sql.*;
2. public class PruebaMySQL {
3. public PruebaMySQL(){
4. try{
5. Class.forName("com.mysql.jdbc.Driver");
6. Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "");
7. Statement s = conexion.createStatement();
8. ResultSet rs = s.executeQuery ("select * from persona");
9. while (rs.next()){
10. System.out.println (rs.getInt ("Id") + " " + rs.getString (2) + " " + rs.getDate(3));
11. }
12. conexion.close();
13. } catch (Exception e){
14. e.printStackTrace();
15. }
16. }
17. public static void main(String[] args){
18. new PruebaMySQL();
19. }
20. }

Observar en el cdigo anterior las caractersticas de las siguientes lneas:
Lnea 6: Se puede cambiar el usuario root y la clave por las correctas de la base de datos que se usa.
Lnea 6: Aqu, "jdbc:mysql://localhost/prueba","usuario", "clave", usuario es root y clave no tiene.
Lnea 7: Se crea un Statement, para realizar la consulta.
Lnea 8: Los resultados se guardan en la hoja de resultados ResultSet rs, para la instruccin select.
Lnea 9: Se recorre el ResultSet para mostrar los resultados.
Lnea 12: Se cierra la conexin con la base de datos.

Para ejecutar el programa se digita en Run:


El resultado obtenido, que coincide con la base de datos inicial, se muestra en la ventana inferior Output:
run:
1 Benito bjuarez@hotmail.com
2 Pancho pvilla@gmail.com
3 Emiliano ezapata@yahoo.com.mx
BUILD SUCCESSFUL (total time: 0 seconds)

En la ventana siguiente se observan el proyecto, el cdigo en el editor y el resultado obtenido en la ventana Output.
M. en C. Alejandro Cifuentes A. Pgina 6



Ejercicio.
Disear una interface grfica, con AWT o Swing, para realizar los procesos de Altas, Bajas, Cambios y
Consultas en bases de datos.
Utilizar las instrucciones SQL insert, delete, update y select para modificar los datos de las tablas.
Utilizar las instrucciones create, drop, show, use y describe para modificar las tablas y bases de datos.
Para realizar lo anterior se utilizan las instrucciones de la seccin Apndice.

Apndice.
La siguiente seccin muestra los ejemplos para utilizar las instrucciones en un programa Java. Se muestra un ejemplo de
uso para cada una de las instrucciones.

a. Crear y borrar la tabla en Base de Datos.
Para enviar comandos SQL a la base de datos, se usa la clase Statement de Java, que se obtiene a partir de la conexin:
Statement st = conexion.createStatement();

Colocndolo dentro de la clusula try-catch.

Statement posee los mtodos: executeUpdate () y executeQuery (). El primero se usa para realizar modificaciones en
la base de datos (insert, update, delete, y otras). El segundo slo para consultas (select y similares).

Por ejemplo, crear una tabla contacto con cuatro campos: id, nombre, apellidos y telfono, con executeUpdate ().
st.executeUpdate("create table contacto(
-> id int auto_increment,
-> primary key (id),
-> nombre varchar (20),
-> apellidos varchar (20),
M. en C. Alejandro Cifuentes A. Pgina 7

-> telefono varchar (20))");

Se desea borrar la tabla se utiliza drop en vez de create.
st.executeUpdate("drop table contacto");

b. Insertar datos en la base de datos con insert:
Para insertar datos en la tabla llamada contacto
String [] nombres = {"Juan","Pedro","Antonio"};
String [] apellidos = {"Gomez","Lopez","Alvarez"};
String [] telfonos = {"123","456","789"};
:
for (int i=0;i<nombres.length;i++)
st.executeUpdate("insert into contacto (nombre, apellidos, telefono)
values ('"+nombres[i]+"','"+apellidos[i]+"','"+telefonos[i]+"' )");

Los datos se solicitan en forma independiente o se utiliza un arreglo y lo anterior dentro de un try-catch. En el insert se
colocan comillas simples para valores de cadenas y con datos numricos no se colocan las comillas, Por ejemplo:
INSERT INTO contacto (nombre, apellidos, telefono)
VALUES ('Juan', 'Gomez', '123');

En el cdigo anterior se hizo as:
...VALUES ('"+nombres[i]+"','"...

c. Consultar datos de la base de datos con select:
Las consultas se realizan con executeQuery () y devuelven un ResultSet, que representa una conexin hacia los datos.
En el ResultSet NO estn todava los datos y los ir trayendo de base de datos segn se soliciten. Esto quiere decir que si
una consulta devuelve muchos resultados, no se va a llenar la memoria por el hecho de hacer la consulta.

Para traer el primer resultado, se llama al mtodo next () del ResulSet. Para el siguiente es otro next () y as
sucesivamente hasta que next () devuelva false, indicando que ya no quedan datos. El cdigo puede ser as
ResultSet rs = st.executeQuery("SELECT * FROM contacto");
while (rs.next()){
System.out.println("nombre="+rs.getObject("nombre")+
", apellidos="+rs.getObject("apellidos")+
", telefono="+rs.getObject("telefono"));
}
rs.close();

Si se conoce de cual tipo es el dato, se le puede solicitar con getInt (), getString () o con getObject () el cual regresa
cualquier tipo de dato. A los mtodos get () se le puede pasar como parmetro un entero, empezando en 1, que es el
nmero del campo en el select. Si se hace select campo1, campo2, campo3..., y si se pide getObject (1) se obtiene el
valor de campo1, para getObject(2) el de campo2, etc. Otra opcin es solicitar getObject ("campo1") que devuelve el
valor del campo1.

d. Actualizar la base de datos con update:
Para update se utiliza executeUpdate (). Para obtener el id se utiliza getInt (), por ejemplo:
rs = st.executeQuery("SELECT id FROM contacto WHERE nombre='Juan'");
rs.next ();
int id = rs.getInt("id");
st.executeUpdate ("UPDATE contacto SET telefono='111' WHERE id="+id);

e. Borrar datos de la base de datos con delete:
El borrado se hace con delete y con executeUpdate(), por ejemplo:
rs = st.executeQuery("SELECT id FROM contacto WHERE nombre='Pedro'");
M. en C. Alejandro Cifuentes A. Pgina 8

rs.next();
id = rs.getInt("id");
st.executeUpdate ("DELETE FROM contacto WHERE id="+id);

f. Cerrar las conexiones
Las clases Connection, Statement y ResultSet son conexiones abiertas a la base de datos y se deben cerrar.

El ResultSet se cierra slo cuando se hace otra llamada execute () al Statement del que se obtuvo este ResultSet, o
bien cuando el recolector de basura toma el ResultSet. No se puede hacer algo con el Statement hasta que se haya
terminado con el ResultSet o se cerrar. Si se necesita realizar otra accin con la base de datos, se debe crear
otro Statement distinto. Cuando se termine con el Statement se le cierra con st.close (). Cuando se termine con
Connection se le cierra con conexion.close ().

Вам также может понравиться