miércoles, 13 de noviembre de 2013

Archivos Planos en Netbeans-Descargar ejemplo

Un archivo es un grupo de datos estructurados que son almacenados en algún medio de 
almacenamiento y pueden ser usados por las aplicaciones (programas)

EJEMPLO HECHO USANDO EL IDE NETBEANS 7.3
DESCARGAR EJEMPLO AQUI:
APLICACION COMPLETA USANDO ARCHIVOS PLANOS

o puedes copiar y pegar esto en tu navegador:

https://mega.co.nz/#!TVIwQCBA!XBO3RWTb_n-i0sZWtBHABCvPQC02x6fozyrfqpiDuo8

martes, 12 de noviembre de 2013

Conexion a SQL Server con NetBeans -Consultas

Objetivos:
Crear una aplicacion en NetBeans conectado a una Base de Datos en SQL Server 2008,en el cual tenga los botones AGREGAR,ELIMINAR,NUEVO;

Requisitos:
*Driver sqljdbc4 (necesario para la conexion)
*Programar en capas (opcional),pero nos sirve para que este mas ordenado nuestros codigos y sean reutilizables

Paso 1 :
Abrir SQL Server Management Studio ,y nos conectamos con la autenticacion de SQL Server (la autenticacion de Windows dejemosla atras)

Paso 2 :
Crear una Base de datos (nombre opcional)en mi caso la llamare "Sistema"

Paso 3:
Crear la siguiente tabla:
   Usuarios
-Usuario
-Clave
-Nivel

Paso 3:
Abrir el IDE NetBeans y crear una aplicacion (en mi caso yo voy crearlo usando capas)
CapaPrincipal = el main (para poder ejecutar nuestra aplicacion)
CapaCliente=a todos nuestros formularios
CapaModelo=todas nuestras clases
CapaRecursos=imagenes,etc

Paso 4 :
Nos ubicamos en la capa modelo y creamos una clase llamada "ConexBD" y colocamos el siguiente codigo

package modelo;

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

public class ConexBD {
    protected PreparedStatement ps;
    protected String bd;
    protected Connection cn;
    protected Statement st;
    protected String sql;
    protected ResultSet rs;
    protected final String url = "jdbc:sqlserver://localhost;databasename=";

     public ConexBD(String bd){
    this.bd=bd;
    try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        System.out.println("Driver Registrado");
        cn=DriverManager.getConnection(url+bd,"sa","123");
        System.out.println("Conexion Establecida");
        st= cn.createStatement();

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

    public String getBd() {
        return bd;
    }

    public void setBd(String bd) {
        this.bd = bd;
    }

    public Connection getCn() {
        return cn;
    }

    public void setCn(Connection cn) {
        this.cn = cn;
    }

    public Statement getSt() {
        return st;
    }

    public void setSt(Statement st) {
        this.st = st;
    }

    public String getSql() {
        return sql;
    }

    public void setSql(String sql) {
        this.sql = sql;
    }

    public ResultSet getRs() {
        return rs;
    }

    public void setRs(ResultSet rs) {
        this.rs = rs;
    }
}


Paso 5 :
Creamos una clase en el mismo paquete llamada classusuario ,en esta clase pondremos todos nuestros atributos,crearemos nuestro constructor  ,los SET y los GET

//ATRIBUTOS
    private String usuario;
    private String clave;
    private  String nivel;

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

GET Y SET
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;
   }

Paso 6:
Creamos nuestro formulario ,colocamos 3 TextField,3 botones (agregar,eliminar,nuevo) y una tabla (a la cual llamaremos tbldatos)

*Al textfield usuario le pondremos el nombre de txtusuario
*Al textfield clave le pondremos el nombre de txtclave
*Al textfield nivel le pondremos el nombre de txtnivel

Paso 6 :
Nos ubicamos en el Public class del formulario y creamos una instancia de la clase "ConexBD" colocamos lo siguiente :


ConexBD u1;

en el InitComponents:
u1=new ConexBD("Sistema");
listado();

Paso7 :
Como hacer para que al ejecutar mi aplicacion ,aparescan los registros ya guardados en mi tabla de mi formulario ?? Hacemos los siguiente ,creamos el metodo listado
private void listado(){
        String sql="SELECT * FROM USUARIOS";
        try {
            ResultSet rs=u1.getSt().executeQuery(sql);
            DefaultTableModel m1=(DefaultTableModel)tbldatos.getModel();
            m1.setRowCount(0);
            
            while (rs.next()) {
                Object []fila={rs.getString(1),rs.getString(2),rs.getString(3)};
                m1.addRow(fila);
                
            }
        } catch (SQLException ex) {
            Logger.getLogger(frmusuario.class.getName()).log(Level.SEVERE,null,ex);
            
            
        }
    }

Luego de hacer esto ,en el InitComponents llamamos el metodo listado,

Paso 8:
Hacemos doble click en el boton agregar o guardar y codificamos los siguiente:
String usuario;
String clave;
String nivel;
       usuario=txtusuario.getText();
       clave=txtclave.getText();
       nivel=txtnivel.getText();

classusuario usu=new classusuario(usuario,clave,nivel);   //hacemos referencia a la clase usuario

String sql="INSERT INTO usuarios VALUES ('"+usu.getUsuario()+"','"+usu.getclave()+"','"+usu.getnivel()+"')";

try {

u1.getSt().executeUpdate(sql);
listado(); //LLAMAMOS AL LISTADO PARA QUE SE ACTUALIZE LA TABLA
JOptionPane.showMessageDialog(null,"Datos Guardados con Exito");
} catch (SQLException e1){
System.out.println("ERROR SQL:"+e1.getMessage());

Paso9 :

Nos ubicamos dentro del boton Eliminar y codificamos lo siguiente:

String cod =JOptionPane.showInputDialog(null, "Ingrese usuario a eliminar");

String sql="delete from usuarios where usuario='"+cod+"'";
try{
int resu=u1.getSt().executeUpdate(sql);
listado(); //PARA QUE SE ACTUALIZE AUTOMATICAMENTE LOS REGISTROS
if(resu==1){
JOptionPane.showMessageDialog(null, "REGISTRO ELIMINADO");
}
            else{
                JOptionPane.showMessageDialog(null, "REGISTRO NO ELIMINADO");
 }
        } catch (SQLException e1) {
            JOptionPane.showMessageDialog(null, e1.getMessage());
        }

Paso 10:
Nos ubicamos dentro del boton nuevo o limpiar y codificamos lo siguiente:
        txtclave.setText("");
        txtnivel.setText("");
        txtusuario.setText("");
        txtusuario.requestFocus();//esto es para que el punto de inicio sea el primer TextField

Paso 11 y ultimo :
Ejecutamos nuestra aplicacion




OJO: recuerden agregar la libreria  sqljdbc4  







Busqueda Sensitiva con NetBeans conectado a SqlServer

 como hacer un filtro de palabras en una Table usando el IDE NetBeans conectado a una Base de Datos SqlServer 2008. Por ejemplo:

*Tenemos un JtextField y una tabla,(no es necesario un boton ya que la busqueda es automatica)

1: Mi tabla en sql tiene los siguientes atributos:
-idproducto
-nombre
-stock

-Para este tutorial usaremos el  evento KeyRelease
(Click derecho sobre el TextField-events-Key-KeyRelease)

String sql="SELECT idproducto,nombreproducto,stock FROM productos where Nombreproducto like '"+txtdescrip.getText()+"%'";
  
DefaultTableModel m1=(DefaultTableModel)tblproductos.getModel();
    m1.setRowCount(0);
    try {
        ResultSet rs=u1.getSt().executeQuery(sql);
        while (rs.next()){
            Object[] fila={rs.getInt(1),rs.getString(2),rs.getInt(3)};
            m1.addRow(fila);
            
        }
    } catch (SQLException ex) {
        Logger.getLogger(frmconsultas.class.getName()).log(Level.SEVERE,null,ex);
    }


Ojo:Mi tabla se llama "tblproductos";
Ejemplo:




ESPERO SUS COMENTARIOS..