Está en la página 1de 15

Sistema Integrado de Mejora

Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 1 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

TRABAJAR BASES DE DATOS DE MYSQL EN


NETBEANS
A continuacin se relaciona el procedimiento para unir la base de datos a netbeans;
es muy importante realizar los pasos en estricto orden, recuerde que la base de datos
con sus tablas ya debe estar creada:

Como practica vamos a crear la base de datos colegio con la tabla

Estudiante
doc_estu (int )
nom_estu (varchar 30)
ape_estu(varchar 30)
dir_estu (varchar 50)
tel_estu (varchar 11)

Ahora ya ubicados en netbeans vamos a enlazar la base de datos.

Este proceso de codificacin utilizando como leguaje de programacin JAVA y bajo


el IDE netbeans 7.x requiere una serie de pasos que se deben realizar de manera
ordenada y exacta, a continuacin se describe uno a uno los pasos.

1. INICIAR Y ENLAZAR EL SERVICIO DE BASES DE DATOS.

Se debe buscar la pestaa servicios, ubicar la


opcin denominada MySQL, y sobre ella hacer clic
derecho para que aparezca la opcin Connect
Using..)

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 2 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

Automticamente aparecer la presentacin donde debe configurar los datos bsicos


de la base de datos (database), con su respectivo password y seleccionar la casilla de
verificacin Remember password.

Se recomienda hacer clic en el botn Test Connection, para verificar que la conexin
est funcionando.

Adicionalmente se recomienda borrar el siguiente texto de la direccin JDBC URL


mysql?zeroDateTimeBehavior=convertToNull
De tal manera que si se realiz el procedimiento adecuadamente, el resultado ser
como lo indica la pantalla

Ahora vamos a informarle al sistema que utilice las librerias necesarias para el bun
funcionamiento de MYSQL, es por ello que ahora en la pestaa PROCJECTS, debe buscar el
icono Libraries y hace clic derecho en la opcin AddLibrary,

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 3 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

Donde aparecer una ventana con el listado de las librerias, para este caso debe seleccionar la
llamada MySQL JDBCDriver

Y clic en el botn AddLibrary, para este momento la librera ya qued enlazada al proyecto y
aparecer de la siguiene manera

2. CREAR UN PAQUETE DENOMINADO CONTROLADOR

Desde este paquete se va manejar la conexin a la Base de datos, es por ello que se
va a crear una clase llamada Clsconexion, con el siguiente cdigo.

import java.sql.Connection; Importamos estas


import java.sql.DriverManager; libreras para el manejo
import java.sql.PreparedStatement;de la sintaxis de SQL
import javax.swing.JOptionPane;

public class Clsconexion {

public PreparedStatement Sql;


public Connection con = null;
Nombre de la BD
//metodo que controla la conexin

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 4 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

public void conectar() {


String db = "jdbc:mysql://localhost:3306/colegio";
String usuario = "root";
String password = "xxxx";//la contrasea que tiene el computador para
la BD
try {
String Controlador = "com.mysql.jdbc.Driver";
Class.forName(Controlador);
con = DriverManager.getConnection(db, usuario, password);
JOptionPane.showMessageDialog(null,"Conexion exitosa");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Error al conectar");
}
}

public void cerrar() {


if (con == null) {
try {
con.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "No se ha cerrado la conexin
con la bd");
}
}
}
}

3. CREAR UN PAQUETE DENOMINADO MODELO

Desde este paquete se va manejar las instrucciones SQL ( insert, select,


update,etc) que nos permiten manipular cada una de las tablas de la Base de
datos. Por cada entidad de la base de datos, se debe tener una clase; es por ello que
para este ejemplo se va a crear una clase con el nombre ClsEstudiante, con el
siguiente cdigo.
import Controlador.ClsConexion;
import java.sql.ResultSet;
import javax.swing.JOptionPane;

public class ClsEstudiante {

ClsConexion objConec = new ClsConexion();

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 5 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

public ResultSet datos;

METODO GUARDAR

public void guardar(int docEstu, String nomEstu, String apeEstu, String


dirEstu, String telEstu) {
try {
objConec.conectar();
objConec.Sql = objConec.con.prepareStatement("insert into
estudiante (docEstu, nomEstu, apeEstu, dirEstu, telEstu) values(?,?,?,?,?)");
objConec.Sql.setInt(1, docEstu);
Los campos deben llamarse igual que en la
objConec.Sql.setString(2, nomEstu);
base de Datos y en el mismo orden de la
objConec.Sql.setString(3, apeEstu);
tabla.
objConec.Sql.setString(4, dirEstu);
objConec.Sql.setString(5, telEstu);
objConec.Sql.executeUpdate(); El nico campo que no se relaciona es el de
objConec.cerrar(); tipo auto_increment.
JOptionPane.showMessageDialog(null, "Sus datos fueron guardados
con xito");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Error al guardar");
}
}

Cuando el campo es de tipo date, en los argumentos del mtodo se deja


como tipo String y en la instruccin SQL se informa que el campo es de tipo
date con la funcin STR_TO_DATE

public void guardar(int cod_est, String nom_est,String ape_est, String dir_est,


String tel_est, String fec_nac_est)
{
try
{

objConec.conectar();
objConec.Sql = est.con.prepareStatement("insert into estudiante (cod_est,

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 6 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

nom_est,ape_est,dir_est,tel_est,fec_nac_est)values(?,?,?,?,?,(STR_TO_DATE(?,
'%d/%m/%Y')))");
objConec.Sql.setInt(1, cod_est);
objConec.Sql.setString(2, nom_est);
objConec.Sql.setString(3, ape_est);
objConec.Sql.setString(4, dir_est);
objConec.Sql.setString(5, tel_est);
objConec.Sql.setString(6, fec_nac_est);
objConec.Sql.executeUpdate();
JOptionPane.showMessageDialog(null,"Sus datos fueron guardados con
xito");
objConec.cerrar();

}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"Error al guardar");
}
}

METODO BUSCAR
public void Buscar(int doc_estu) {
try {
objConec.conectar();
objConec.Sql = objConec.con.prepareStatement("SELECT * FROM
estudiante WHERE doc_estu=?");
objConec.Sql.setInt(1, doc_estu);
objConec.Sql.executeQuery();
datos = objConec.Sql.getResultSet();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "error al buscar");
}
}

METODO ACTUALIZAR
public void Actualizar(String nom_estu, String ape_estu, String dir_estu, String
tel_estu, int doc_estu) {
try {
objConec.conectar();

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 7 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

objConec.Sql = objConec.con.prepareStatement("UPDATE estudiante


SET nom_estu =?, ape_estu=?, dir_estu =?, tel_estu =? WHERE doc_estu =?");
objConec.Sql.setString(1, nom_estu);
objConec.Sql.setString(2, ape_estu);
objConec.Sql.setString(3, dir_estu);
objConec.Sql.setString(4, tel_estu);
objConec.Sql.setInt(5, doc_estu);
objConec.Sql.executeUpdate();
objConec.cerrar();
JOptionPane.showMessageDialog(null, "Registro actualizado con
xito");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "error al actualizar:");
}
}

METODO ELIMINAR (Recuerde que este mtodo solo se usa en casos


especiales, no puede estar al acceso de todos los usuarios.)

public void eliminar(String doc_estu) {


try {
objConec.conectar();
objConec.Sql = objConec.con.prepareStatement("delete from
estudiante where doc_estu =?");
objConec.Sql.setString(1, doc_estu);
objConec.Sql.executeUpdate();
objConec.cerrar();
JOptionPane.showMessageDialog(null, "Registro eliminado con xito");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "error al eliminar:");
}
}
}

4. CREAR UN PAQUETE DENOMINADO VISTA

En este paquete se crearan todos los formularios que van a permitir ingresar, modificar y consultar
cada una de las entidades de la base de datos.

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 8 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

Con las dos clases creadas, la de conexin y la que contiene sintaxis SQL procedemos a crear
el formulario para manipular la tabla de la Base de Datos, en nuestro caso la tabla
estudiante, el diseo del formulario seria el siguiente.

Puede observar que tenemos una caja de texto para cada campo de la tabla estudiante y los
botones bsicos de manipulacin de datos (Guardar, Buscar, Actualizar, Eliminar).

FORMULARIO
ESTUDIANTE

ClsEstudiante objest = new ClsEstudiante();


//Se va a llamar el mtodo guardar de la clase Estudiante
public void guardar() {
objest.guardar(Integer.parseInt(txtdoc.getText()), txtnom.getText(),
txtape.getText(), txtdir.getText(), txttel.getText());
}

//Se va a llamar el mtodo buscar de la clase Estudiante


public void buscar() {
try {
String bus = ShowInputDialog(Digite el document del estudiante a Buscar);
objest.Buscar(Integer.parseInt(bus));
if (objest.datos.next() == true) {
txtnom.setText(objest.datos.getString("nom_estu"));
txtape.setText(objest.datos.getString("ape_estu"));
txtdir.setText(objest.datos.getString("dir_estu"));
txttel.setText(objest.datos.getString("tel_estu"));
} else {

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 9 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

JOptionPane.showMessageDialog(null, "El estudiante no existe");


}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Fallas tecnicas al buscar");
}
}

//Se va a llamar el mtodo actualizar de la clase Estudiante


public void actualizar() {
try {
objest.Actualizar(txtnom.getText(), txtape.getText(), txtdir.getText(),
txttel.getText(), Integer.parseInt(txtdoc.getText()));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Fallas tecnicas al buscar");
}
}

//Se va a llamar el mtodo eliminar de la clase Estudiante, Esta opcin


solo se usa en casos especiales
public void eliminar() { //Esta opcin solo se usa en casos especiales
int a = JOptionPane.showConfirmDialog(null, "Desea Eliminar los datos?",
"Sistema", 0, 1);
if (a == 0) // Hace clic en el icono SI
{
objest.eliminar(txtdoc.getText());
}
}
DATOS DE INTERES
VALIDAR QUE LAS CAJAS DE TEXTO TENGAN INFORMACION

if (cajatexto.getText().length() == 0) { // Valida que la caja de texto tenga datos


mensaje.showMessageDialog(this, "Falt un dato"); //Visualiza una ventana
emergente
cajatexto.grabFocus(); // Deja el cursor en la caja de texto
}

VALIDAR QUE LAS CAJAS DE TEXTO SOLO RECIBAN NUMEROS

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 10 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

En el evento KeyPressed de la caja de texto debe incluir el siguiente cdigo, para


buscar este evento, debe dar clic derecho estando ubicado en la caja de texto, y
automticamente le aparecern las siguientes opciones

Nombre de la caja de texto.addKeyListener(new KeyAdapter() {

public void keyTyped(KeyEvent e) {


char c = e.getKeyChar();
if (!((Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || (c ==
KeyEvent.VK_DELETE)))) {
getToolkit().beep();
e.consume();
}
}
});

Siendo el resultado de la programacin el siguiente;

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 11 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

Es as que si se tienen varias cajas de texto, donde solo se reciben nmeros, en


cada una de ellas se debe realizar la misma programacin.

METODO PARA CAPTURAR LA FECHA DEL SISTEMA

public void fecha() {


Date fechaActual = new Date();
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
String cadenaFecha = formato.format(fechaActual);
txtfecind.setText("" + cadenaFecha);
}

Para el manejo de fechas tambin existen calendarios prediseados en java, uno muy
utilizado es el jDatachooser o el Jcalendar, los cuales manejan sus propias
libreras y se deben descargar para poder vincularlas al proyecto.

Y para tomar la fecha de este calendario y mandarla a guardar a la base de Datos en


un campo tipo Date, desde el formulario debe capturarla y convertirla a tipo String,
un ejemplo seria el siguiente:

String dato = new


SimpleDateFormat("dd/MM/yyyy").format(fecnac.getDate());
estudiante.guardar(Integer.parseInt(txtcod.getText()),txtnom.getText(),
txtape.getText(), txtdireccion.getText(), txttelefono.getText(), dato);

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 12 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

LLENAR UN COMBO CON INFORMACION DE UNA TABLA DE LA B.D


En el formulario se realiza el siguiente mtodo y usted llama el mtodo cuando lo
necesite.
public void llenar_tipo()
{
try
{
ver.llenartipo();
while(ver.datos.next()== true)
{
combo.additem(ver.datos.getString(2));//Este es el campo de la tabla
que deseamos mostrar
tipo = combo.getSelectedItem();
}
}
catch(Exception ex)
{
System.out.println("error en buscar");
}
}

EN LA CLASE LOGICA
public void llenartipo ()
{
try
{
conectar();
Sql=con.prepareStatement("SELECT * FROM tipo");
Sql.executeQuery();
datos=Sql.getResultSet();
cerrar();
}
catch(Exception ex)
{
System.out.println("error al buscar");
}
}

TRABAJANDO CON JTABLE

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 13 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

El metodo que se describe a continuacin busca llenar una tabla ubicada en el


formulario, con la informacin que se tiene en una base de datos, para nuestro
ejemplo tendremos una tabla con los campos Nombre, Direccin y Telfono

DefaultTableModel tabladatos; // con esta instruccin creamos un objeto llamado


modelotabla, por lo tanto esta lnea de cdigo debe estar al inicio del formulario
donde se crean y declaran todas las variables.

public class Frmtabla extends javax.swing.JFrame { //El inicio del formulario


DefaultTableModel tabladatos; //Debe crear este modelo para poder adicionar el
contenido de la tabla
/** Creates new form Frmtabla */
public Frmtabla() {
initComponents();
this.crearTabla();
}

public void crearTabla() {


Object modelodata[][] = new Object[0][0];// El primer valor es la cantidad de
filas, igual no interesa porque las filas se adaptan a la cantidad de registros incluidos

Object modelotitulos[] = {"Nombre","Direccion", "Telefono"};


tabladatos = new DefaultTableModel(); // tabladatos, es el nombre del modelo
que creo, no el de la tabla
tabladatos = new DefaultTableModel(modelodata, modelotitulos);
this.tabla.setModel(this.tabladatos); //tabla es el nombre de la tabla en el
formulario, no puede ser el mismo del modelo }

public void borrarTabla(){

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 14 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

while(0<this.tabla.getRowCount())
{
tabla.setModel(new DefaultTableModel());
this.crearTabla();
}
}

public void llenartabla() // Con informacin que viene de una tabla de la base de
datos
{
try
{
borrarTabla(); // metodo que permite limpiar la tabla
empre.mtdlistar(); //mtodo que tiene el cdigo SQL con la informacin de la
tabla, recuerde que las instrucciones de este mtodo estn en la clase lgica.
while (empre.datos.next()==true)
{
String Nombre=empre.datos.getString(1);
String Direccion = empre.datos.getString(2);
String Telefono = empre.datos.getString(3);
Object fila[]={Nombre,Direccion, Telefono};
tabladatos.addRow(fila); // tabladatos Es el nombre del modelo
}
}
catch(Exception ex)
{
System.out.println("error al llenar la tabla");
}

}
SELECCIONAR UNA FILA DEL JTABLE

Este proceso nos permite seleccionar una fila del jtable mediante el uso del mouse y
cuando se ubique el puntero de ste automticamente aparecern los datos en
diferentes objetos, para el ejemplo que presento en este material los datos
aparecern en los compenentes de texto (txt).

Ubiquese en el comportamiento click del Jtable y digite el siguiente cdigo;

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017
Sistema Integrado de Mejora
Continua Institucional Servicio Nacional de Aprendizaje - SENA

Centro Atencin al Sector Agropecuario CASA Regional Santander Versin: 02

Pgina 15 de 15
Nuevas Tecnologas de la Programacin. -
Manejo de bases de datos en Netbeans 7.x

int linea = nombreJtable.getSelectedRow(); //Esta instruccin captura la fila de la


tabla para mostrar los datos donde quiera.
jLabel6.setText(jTable1.getValueAt(linea, 0).toString());
txtfechacita.setText(jTable1.getValueAt(linea, 1).toString());
txthoracita.setText(jTable1.getValueAt(linea, 2).toString());

Estas instrucciones lo que hacen es capturar el nmero de la fila que selecciono y


enviar los datos de todas las columnas de la fila a los objetos, por eso el 0,1,2

IMPRIMIR DESDE UN JTABLE

Estas instrucciones lo que permiten es imprimir el contenido que esta visualizando


el Jtable, para que la instruccin se ejecute se debe llamar el mtodo en algn
componente del Formulario.

public void imprimirtabla() {


try {
MessageFormat headerFormat = new MessageFormat("Page {0}");
MessageFormat footerFormat = new MessageFormat("- {0} -");
NombreJtable.print(JTable.PrintMode.FIT_WIDTH, headerFormat,
footerFormat);
} catch (PrinterException pe) {
System.err.println("Error printing: " + pe.getMessage());
}
}

INSTRUCTORA MAGDA MILENA GARCIA GAMBOA


04 de abril de 2017