Professional Documents
Culture Documents
JAVA III
Objetivos:
Permitir conectar nuestra aplicacin con una Base de datos, e igualmente se llevar a
cabo un test de conexin a travs de un pequeo fragmento de cdigo el cual se
colocar dentro del mtodo de un botn.
Identificar la manipulacin de las sentencias SQL mediante programas Java.
Conocimientos Previos:
Para la realizacin de esta actividad los aprendices tienen que
tener claro los conceptos de:
Clases.
Creacin de Objetos.
Constructores.
Interface Grafica
Sentencias SQL
Enlaces de apoyo
http://creando.bligoo.com/como-crear-un-formulario-basicoen-java
REFLEXION
de
Estudiaremos los mecanismos provistos por Java para que los programas puedan
conectarse a bases de datos para consultar y modificar informacin.
Para esto se requiere tener conocimientos bsicos sobre base de datos relaciones y
SQL(Structured Query Language).
EJEMPLO
TRABAJAREMOS CON DOS TABLAS: MP (EMPLEADOS) Y DPT
(DEPARTAMENTOS)
DPT
deptno
1
2
3
EMP
EMPNO
10
20
30
40
50
60
Dname
Ventas
Compras
Rhh
ENAME
JUAN
ALBERTO
PEDRO
MARCOS
JAIME
PABLO
loc
Buenos Aires
Buenos Aires
La plata
DEPTNO
1
3
1
2
2
1
HIREDATE
02/05/90
03/01/93
02/06/85
05/12/98
07/11/82
07/10/96
Veamos que la tabla DPT tiene tres registros (3 departamentos) y la tabla EMP
(empleados) tiene 6 empleados. Vemos tambin que cada columna (cada campo)
contiene informacin de un tipo de datos (EMPNO son nmeros enteros, ENAME son
cadenas de caracteres, HIREDATE son fechas).
La descripcin formal de cada una de estas tablas la veremos a continuacin:
Lo anterior debe leerse de la siguiente manera: la tabla DEPT tiene tres campos: deptno
(numero de departamento), dname (nombre del departamento), y loc (localidad donde
funciona el departamento).
Los campos son de un determinado tipo de datos. En la tabla DEPT el campo dptno es de
tipo INTEGER (numrico entero) y los campos dname y loc son tipo VARCHAR (15)
(cadena de 15 caracteres). La tabla no admite campos NULL (campos que no tengan
asignado un valor concreto).
El campo deptno es primary key (clave primaria). Esto exigen que los valores de este
campo existan y sean nicos para todos los registros. Es decir, en esta tabla no puede
haber dos o mas registros con el mismo numero de departamento.
EMP (tabla de empleados)
En anlisis de la tabla EMP es similar al de la tabla DEPT, pero hay una diferencia: EMP
tiene una relacin de integridad con DEPT definida por la foreign key (clave fornea)
asociada al campo dptno.
Realizar la siguiente consulta y realizar cuadro comparativo en donde se pueda identificar sus
caractersticas principales:
Objetos Statement.
Sentencia executeUpdate().
Sentencia executeQuery()
ResultSetMetaData.
TestResultSetMetaData.java
DatabaseMetaData.
TestMetaData.java
DefaultTableModel
2. Debemos descargar
el
archivo
.jar conocido
https://drive.google.com/file/d/0B59D4Z6JQZFFZFRfRHlPU1Q5dEE/edit?usp=sharing
3. CREE UN NUEVO PROYECTO
4. Creo los paquetes que requiere en el proyecto bajo el Modelo Vista Controlador.
6. Creo una nueva clase en el paquete ConexionDB y la llamo tambin Conectar, sin cambiar los nombres.
7. Borro el cdigo de la clase y lo reemplazo por este cdigo de conexin a Base de datos:
package ConexionDB;//PAQUETE NOMBRE
import java.sql.Connection; // LIBRERIA DE CONEXION BD
import java.sql.DriverManager; //DRIVER DE MANEJO DE DATOS
import java.sql.SQLException; //OMITIR O ENVIAR MENSAJES DE ERROR SQL
import javax.swing.JOptionPane; // ENVIA MENSAJES EMERGENTES EN PANTALLA
public class conectar {
//Ahora instanciaremos un objeto de tipo "Connection", al cual asignaremos el valor "null".
//Esto ir dentro del mtodo del punto anterior:
Connection conect = null;
//Lo siguiente es un mtodo, este contiene la propiedad "public", y devolver un valor de
//tipo "Connection", que en otras palabras sera la conexin con nuestra Base de datos; y
//se le ha asignado a este mtodo el nombre de "Conexin":
public Connection conexion()
{
//Proseguiremos a crear un bloque "try-catch", debido a que el cdigo que hemos de
//emplear podra producir una excepcin y/o error. Este bloque ir dentro del mtodo
//mencionado
try {
Ahora haremos una prueba para verificar que si nos podemos conectar a nuestra base
de datos, para esto nos iremos a nuestro formulario principal CLIENTES y daremos doble
clic sobre un botn que vamos a agregar para hacer la prueba:
DISEO CON LABELS CUADROS DE TEXTO Y BOTONES LA ESTRUCTURA GRAFICA QUE ME ALMACENARA LA
INFORMACION SE RECOMIENDA NO HACER EL PRIMER FORMULARIO PARA UNA TABLA QUE TENGA LLAVES
FORANEAS.
10. REEMPLAZO EL NOMBRE DE LOS CUADROS DE TEXTO POR LOS CAMPOS QUE IRAN REALMENTE CON
TXT AL COMIENZO.
DEBIDO A QUE EL CUADRO DE TEXTO ALMACENA EN VARIABLES Y NECESITO VARIABLES DE CODIGO TAMBIEN.
CUADRO DE TEXTO GUARDA COMO STRING Y ESTO DEBE CONVERTIRSE A LA VARIABLE QUE NECESITO. EL
CUADRO DE TEXTO NO PUEDE LLAMARSE IGUAL QUE UNA VARIABLE.
12 .
public clientes() {
initComponents();
limpiar();//mtodos que vamos a crear que solo vamos colocando a medida que
vamos crendolos para que no salgan con error.
bloquear();
cargar("");
}
void limpiar(){ //Creamos el mtodo para limpiar los campos
NOMBRE.setText("");
nombre
try {
Statement op = vc.createStatement();//creamos un Statemen para ejecutar nuesta
consulta.
ResultSet rs = op.executeQuery(sql);// creamos una variable resulset ya que esta
consulta va tener resultados al realizar la conexin a bd.
// se crea un while que nos permita insertar nuestros registro a nuestra tabla clientes while
(rs.next()){
registros[0]=rs.getString("codigo");
// Esto lo realizamos para nombre,apellido,ciudad,telfono.
modelo.addRow(registros);// aqu indicamos que se agregue nuestros registros.
}
tablaclientes.setModel(modelo);// indicamos a nuestra tablaclientes se aplique
nuestro modelo.
} catch (SQLException ex) {
}
}
Colocamos un botn BUSCAR y un TEXT FIELD los cuales llamaremos
Buscar-buttom Txtbuscartext field Mostrar-buttom
Creamos el mtodo buscar
private void BUSCARActionPerformed(java.awt.event.ActionEvent evt) {
cargar(TXTBUSCAR.getText()); llamamos el mtodo cargar y se realice la bsqueda por los
parmetros indicados de nombre, apellido.
}
Creamos un men emergente POPU MENU(MODIFICAR) agregar dos tem
(modificar,eliminar).
if (fila>=0){
CODIGO.setText(tablaclientes.getValueAt(fila,0).toString()); // nos permite Mostrar la
informacin de este campo.
Realizar para los dems campos nombre,apellido,ciudad,telfono. desbloquear();
// llamamos al mtodo desbloquear para realizar los ajustes
necesarios.
}
else
JOptionPane.showMessageDialog(null,"NO SELECCIONO FILA");
}
Creamos el mtodo actualizar del botn para que este actualice los cambios en la base de
datos.
private void ACTUALIZARActionPerformed(java.awt.event.ActionEvent evt) {
conectar basedatos = new conectar();
Connection vc = basedatos.conexion();
try {
}
}