Laboratorio de netbeans sql server15-04-2013

13
Prof Arturo Florian Herencia SISE 28-01- 2009 Laboratorio de Lenguaje de Prog- I ( Netbeans) 1 -El Objetivo de la guia es desarrollar la primera aplicación en Java que interactúe con una base de Datos de Sql Server 2005 (Sistemacont) . Inicialmente se debe configurar el Sql server 2005 para conectarse al servidor con autentificación SQL con el Usuario sa y sin contraseña . Luego se procede a restaurar la BD Sistemacont , utilizando el archivo backup. Ejecutar Netbean 6.5.1 y crear un Nuevo Proyecto denominado Appsistema con la configuración inicial siguiente: Con lo cual se creara el paquete inicial denominado appsistema y en su interior la clase Principal que contiene el método main ( punto inicial de ejecución de toda aplicación en Java). Adicionalmente se debe crear los siguientes Paquetes dentro de Source Packages: forms .- Contendrá todos los Frames ( formularios) de la Aplicación. También se le denomina ui , Cliente, interfaz modelo.- contendrá todas las clases no visuales que se obtienen de realizar la abstracción para resolver el problema( Ejemplo: ConexBD, Usuario, UsuarioBD, Personal ,PersonalBD,…etc). resources.- Contendrá las imágenes, videos y diversos recursos multimedia que utiliza la aplicación. El siguiente paso es fundamental: Agregar a la sección de Libraries del Proyecto el Archivo controlador de la BD (driver) a utilizar ,en este caso es sqljdbc.jar . La aplicación utilizara las diversas clases e interfaces que

Transcript of Laboratorio de netbeans sql server15-04-2013

Page 1: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

Laboratorio de Lenguaje de Prog-I ( Netbeans)

1 -El Objetivo de la guia es desarrollar la primera aplicación en Java que interactúe con una base de Datos de Sql Server 2005 (Sistemacont) . Inicialmente se debe configurar el Sql server 2005 para conectarse al servidor con autentificación SQL con el Usuario sa y sin contraseña . Luego se procede a restaurar la BD Sistemacont , utilizando el archivo backup.

Ejecutar Netbean 6.5.1 y crear un Nuevo Proyecto denominado Appsistema con la configuración inicialsiguiente:

Con lo cual se creara el paquete inicial denominado appsistema y en su interior la clase Principal que contiene el método main ( punto inicial de ejecución de toda aplicación en Java).

Adicionalmente se debe crear los siguientes Paquetes dentro de Source Packages:

forms .- Contendrá todos los Frames ( formularios) de la Aplicación. También se le denomina ui , Cliente, interfaz

modelo.- contendrá todas las clases no visuales que se obtienen de realizar la abstracción para resolver el problema( Ejemplo: ConexBD, Usuario, UsuarioBD, Personal ,PersonalBD,…etc).

resources.- Contendrá las imágenes, videos y diversos recursos multimedia que utiliza la aplicación.

El siguiente paso es fundamental: Agregar a la sección de Libraries del Proyecto el Archivo controlador de laBD (driver) a utilizar ,en este caso es sqljdbc.jar .

La aplicación utilizara las diversas clases e interfaces queincorpora el driver o archivo controlador de la BD, asícomo sus métodos correspondientes , para acceder a lasoperaciones a la BD.

-Incorporar al paquete modelo la clase base ConexBD.java que ha sido desarrollada en clase y realiza laconexión inicial con una Base de Datos especifica. Verificar que el paquete que utiliza ConexBD se llamemodelo. ( package modelo;)

Page 2: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

-Crear los siguientes Formularios JFrame Form en el paquete forms:

FrmAcceso Frmmenu

txtusu txtclave

2-Crear la clase Usuario dentro del paquete modelo, la cual contendrá los atributos que contiene cualquierusuario de la aplicación : u s u ari o , c la v e y n i v e l . Los 3 atributos son de tipo cadena y que debe corresponder conlos campos de la tabla usuario. Se deben encapsular los campos de esta clase( crear los Métodos get y set)

package modelo;

public class Usuario { protected String usuario;

protected String clave; protected String nivel; public Usuario(){ usuario="";clave="";nivel="";}

public Usuario(String usuario, String clave, String nivel){this.usuario=usuario;

this.clave=clave; this.nivel=nivel;}public String getUsuario() {

return usuario;}public void setUsuario(String usuario) {

this.usuario = usuario;}

public String getClave() {return clave;

}

public void setClave(String clave) {this.clave = clave;

}

public String getNivel() {return nivel;

}

public void setNivel(String nivel) {this.nivel = nivel;

}

Page 3: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

}

3-Crear la clase UsuarioBD dentro del paquete modelo , que hereda de la clase ConexBD sus atributos y métodos. Posteriormente Ud. creara las clases PersonalBD, VentasBD y ProductosBD que también tienen como clase padre a ConexBD. El contenido de la clase UsuarioBD sera:

package modelo;

import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException;

public class UsuarioBD extends ConexBD {private Usuario usuario;private String tabla;

public UsuarioBD(String bd){ super(bd); tabla="Usuarios";try{

st= cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs= st.executeQuery("Select * from "+tabla);

}catch(SQLException e1){System.out.println("ERROR SQL:"+ e1.getMessage());

}}

public boolean insertar (Usuario u){sql="insert into "+ tabla + " values('" +u.getUsuario()+

"','"+u.getClave()+"','"+ u.getNivel() +"')";try{

st=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);st.executeUpdate(sql);rs = st.executeQuery("SELECT * FROM "+tabla);return true;

}catch(SQLException e1){System.out.println("ERROR SQL:"+ e1.getMessage());return false;

}}

public boolean eliminar (String usuario){sql="delete from "+ tabla + " where usuario='" +usuario+ "'";

try{st=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

st.executeUpdate(sql);rs = st.executeQuery("SELECT * FROM "+tabla);return true;

}catch(SQLException e1){

System.out.println("ERROR SQL:"+ e1.getMessage());return false;

}}

}

Page 4: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

4-Agregar los Métodos de Acceso getXX y setXX a los 2 atributos de esta clase (usuario y tabla), en total son 4métodos a generar:

-getUsuario, setUsuario, getTabla y setTabla.

Para lo cual señalar un atributo de la clase UsuarioBD pulsar el botón derecho del mouse y señalar

-Refactor

-Encapsulate Fields ( Encapsular los campos o atributos, es decir generar los métodos get y set)

-Señalar las casillas de los 4 métodos y pulsar el botón refactor( refactorizar).

5-Modificar la cabecera de la clase FrmAcceso agregando el objeto u1 que se instancia de la clase UsuarioBD y también modificar el constructor para hacer la conexión con la bd sistemacont.

public class FrmAcceso extends javax.swing.JFrame

{ UsuarioBD u1;

/** Creates new form FrmUsuario */

public FrmAcceso() {

initComponents();

u1= new UsuarioBD("sistemacont");

}

-Agregar el siguiente código al botón Aceptar:

private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { String usuario, clave;usuario=txtusu.getText();clave=new String (txtclave.getPassword());boolean hallado= false;

try{

ResultSet rs= u1.getSt().executeQuery("select * from usuarios where usuario='"+ usuario+ "' and clave='"+ clave+"'" );

if (rs.next()){ // si el usuario y clave son las correctas se procedea mostrar el menu principal maximizado

Frmmenu m1=new Frmmenu ();m1.setExtendedState( Frmmenu.MAXIMIZED_BOTH);m1.setVisible(true);

this.setVisible(false);}else{ // sino se muestra un mensaje de error

JOptionPane.showMessageDialog(null, "Usuario o Clave Incorrecta"); hallado=false;

}

}catch(SQLException e1){

System.out.println("ERROR SQL:"+ e1.getMessage());}

}

Page 5: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

Frmmenu (JFrame Form)

-Crear el Formulario FrmUsuario de la clase JDialog Form en el paquete forms.

FrmUsuario (JDialog Form ) formulario modal

tblusuarios( JTable )

Page 6: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

txtusu

txtclave

txtnivel

Modificar la cabecera de la clase FrmUsuario agregando el Atributo u1 que se instancia de la claseUsuarioBD y también modificar el constructor para hacer la conexión con la bd sistemacont.

public class FrmUsuario extends javax.swing.JDialog {

UsuarioBD u1;

/** Creates new form FrmUsuario */

public FrmUsuario(java.awt.Frame parent, boolean modal) {

super(parent, modal);

initComponents();

u1=new UsuarioBD("sistemacont");

Agregar estas2 lineas

}

-Para realizar el Movimiento a través de los registros de la tabla con los botones de Desplazamiento ( primero, anterior, siguiente , ultimo) , crearemos el método cargarReg el cual tiene un parámetro que de tipo enumerado que especificar cual registro deseamos visualizar en el formulario. Agregar este método después de la llave de cierre del constructor:

enum Movimiento {PRIMERO, ANTERIOR,SIGUIENTE,ULTIMO};private void cargarReg(Movimiento r ){

try{ResultSet rsusu=u1.getRs();switch (r)

{case PRIMERO:

rsusu.first(); break;case ANTERIOR:

rsusu.previous();break;case SIGUIENTE:

rsusu.next();break;case ULTIMO:

rsusu.last();break;}txtusu.setText(rsusu.getString(1));

Page 7: Laboratorio de netbeans  sql server15-04-2013

Prof Arturo Florian Herencia SISE 28-01-2009

txtclave.setText(rsusu.getString(2));txtnivel.setText(rsusu.getString(3));

}catch (SQLException e1){System.out.println("ERROR SQL en cargarReg:"+ e1.getMessage());}

}

-El código para el botón Guardar (btnguardar) de la Ficha de Mantenimiento de es:

private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String usuario=txtusu.getText();

String clave=txtclave.getText();

String nivel=txtnivel.getText();

Usuario usu =new Usuario(usuario,clave,nivel);

if (u1.insertar(usu)==true )

JOptionPane.showMessageDialog(this, "Registro Guardado");

else

JOptionPane.showMessageDialog(this, "ERROR al Guardar Registro");

}

-Código del botón Listado:

private void btnlistadoActionPerformed(java.awt.event.ActionEvent evt) {

DefaultTableModel modelo1 =(DefaultTableModel)tblusuarios.getModel();

modelo1.setRowCount(0);

try

{

ResultSet rs=u1.getRs();

rs.beforeFirst();

while(rs.next()){

Object [] datos={rs.getString(1),rs.getString(2),rs.getString(3) };

modelo1.addRow(datos);

}

}catch(SQLException e1){

System.out.println("Error SQL:"+e1.getMessage());

}

}