Búsqueda por palabras claves

No se olviden de consultar por palabras claves! Ejemplo de Estructura de datos en java, tutorial de estructura de datos
Búsqueda personalizada

miércoles, 19 de diciembre de 2012

trabajar con fechas java, fechas java mysql, datetime mysql, date mysql java

En primer lugar debemos crear una base de datos en MySQL en mi caso la base tiene como nombre facturación, en esta base he creado una Tabla Factura, con los siguientes campos idFactura(int,Autoincremental y Clave Primaria),fecha (DATETIME), fechaCorta (DATE)

CREATE TABLE `factura` (
  `idFactura` int(11) NOT NULL auto_increment,
  `Fecha` datetime default NULL,
  `FechaCorta` date default NULL,
  PRIMARY KEY  (`idFactura`)
)

Creamos un nuevo Proyecto de java y en el Método main programamos el siguiente código
public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // TODO code application logic here

        java.util.Date dt = new java.util.Date();
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String fechaHora = sdf.format(dt);
        Class.forName("com.mysql.jdbc.Driver");
        Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/facturacion", "root", "pauloguerra");
        
        java.util.Date dtc = new java.util.Date();
        java.text.SimpleDateFormat sdfc = new java.text.SimpleDateFormat("yyyy-MM-dd");
        String yyyymmdd = sdf.format(dtc);
        
        PreparedStatement ps = cn.prepareStatement("insert into Factura(fecha,fechaCorta) values(?,?)");
        ps.setString(1, fechaHora);
        ps.setString(2, yyyymmdd);
        ps.executeUpdate();

    }

Dar clic sobre nuestro proyecto, seleccionar Propiedades, librerías/Bibliotecas y dar clic en agregar librerías, buscamos la libreria MYSQL como se observa en las siguientes imágenes

martes, 5 de junio de 2012

Lectura de archivos en java con delimitadores

Lectura de archivos con delimitadores:

Archivo almacenado consta de la siguiente información:

avila#12#24#soleado
toledo#16#15#soleado
madrid#15#27#soleado
barcelona#12#20#nublado


Crear un nuevo proyecto en Netbeans y Crear una Clase Clima:

package proyectoarchivos;

/**
 *
 * @author PauloGT
 */
public class Clima {
    
    private String ciudad;
    private int min;
    private int max;
    private String condicion;

    public Clima() {
    }

    @Override
    public String toString() {
        return "Clima{" + "ciudad=" + ciudad + ", min=" + min + ", max=" + max + ", condicion=" + condicion + '}';
    }
    

    public Clima(String ciudad, int min, int max, String condicion) {
        this.ciudad = ciudad;
        this.min = min;
        this.max = max;
        this.condicion = condicion;
    }

    /**
     * @return the ciudad
     */
    public String getCiudad() {
        return ciudad;
    }

    /**
     * @return the min
     */
    public int getMin() {
        return min;
    }

    /**
     * @return the max
     */
    public int getMax() {
        return max;
    }

    /**
     * @return the condicion
     */
    public String getCondicion() {
        return condicion;
    }

    /**
     * @param ciudad the ciudad to set
     */
    public void setCiudad(String ciudad) {
        this.ciudad = ciudad;
    }

    /**
     * @param min the min to set
     */
    public void setMin(int min) {
        this.min = min;
    }

    /**
     * @param max the max to set
     */
    public void setMax(int max) {
        this.max = max;
    }

    /**
     * @param condicion the condicion to set
     */
    public void setCondicion(String condicion) {
        this.condicion = condicion;
    }
           
}

Creamos una clase GestionarInformacion para leer el archivo y pasar la información a Objetos
package proyectoarchivos;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author PauloGT
 */
public class GestionInformacion {

    File archivo = null;
    FileReader fr = null;
    BufferedReader br = null;
    ArrayList lineas = new ArrayList();
    ArrayList climasCiudad = new ArrayList();

    public void separadores(String linea) {
        StringTokenizer st = new StringTokenizer(linea, "#");
        System.out.println("Datos Personales: ");
        int i = 0;
        String palabras[] = new String[st.countTokens()];
        while (st.hasMoreTokens()) {
            palabras[i] = st.nextToken();
            i++;
       }
        climasCiudad.add(new Clima(palabras[0], Integer.parseInt(palabras[1]), Integer.parseInt(palabras[2]), palabras[3]));
    }

    public ArrayList devolverObjetos() {
        return climasCiudad;
    }

    public void leerArchivo(String nombre) {
        try {
            archivo = new File(nombre);
            fr = new FileReader(archivo);
            br = new BufferedReader(fr);

            // Lectura del fichero
            String linea;
            try {
                while ((linea = br.readLine()) != null) {
                    System.out.println(linea);
                    separadores(linea);
                }

            } catch (IOException ex) {
                Logger.getLogger(GestionInformacion.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(GestionInformacion.class.getName()).log(Level.SEVERE, null, ex);
        }
        
            
        

    }
}

Finalmente realizamos la llamada a las clases creadas
public static void main(String[] args) {
        // TODO code application logic here
        GestionInformacion obj=new GestionInformacion();
        obj.leerArchivo("clientes.txt");
        for (Clima x :obj.devolverObjetos()) {
            System.out.println(x.toString());
        }
        
    }

jueves, 31 de mayo de 2012

Este ejercicio hace la simulación de un formulario que hace una consulta, la cual se demora en la "búsqueda" por lo que aparenta que el formulario está colgado pues una vez presionado el botón no podemos seleccionar ningún elemento del ComboBox.

package hilos2;


import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;

/**
 *
 * @author PauloGT
 */
public class Ventana extends Frame {
 
private JButton boton;
   private JComboBox combo;
   
   public Ventana(){
     setLayout(new FlowLayout());
     add(boton=new JButton("Este duerme el proceso: "));
     boton.addActionListener(new EscuchaBoton());
    add(combo=new JComboBox());
    combo.addItem("Item 1");
    combo.addItem("Item 1");
    combo.addItem("Item 1");
    setSize(300,300);
   
   }
   
   class EscuchaBoton implements ActionListener{

 @Override
 public void actionPerformed(final ActionEvent arg0) {
   
    // Simulación de que hace la consulta y se demora
    try {
    Thread.sleep(10000);
     System.out.println("Finalizo el proceso.. ");
   } catch (final InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
 }
   }
}

El main de nuestra aplicación sería:

public static void main(String[] args) {
        // TODO code application logic here
        Ventana obj=new Ventana();
        obj.setVisible(true);
     
    }
Para Solucionar este tipo de problemas debemos usar hilos, por lo que necesitamos simplemente cambiar el código de nuestro programa de la siguiente manera:
package hilos2;


import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;


/**
 *
 * @author PauloGT
 */
public class Ventana_1 extends Frame {
 
private JButton boton;
   private JComboBox combo;
   
   public Ventana_1(){
     setLayout(new FlowLayout());
     add(boton=new JButton("Este duerme el proceso: "));
     boton.addActionListener(new EscuchaBoton());
    add(combo=new JComboBox());
    combo.addItem("Item 1");
    combo.addItem("Item 1");
    combo.addItem("Item 1");
    setSize(300,300);
   
   }
   
   class EscuchaBoton implements ActionListener{

 @Override
 public void actionPerformed(final ActionEvent arg0) {
   
    
   boton.setEnabled(false);
                        TareaBoton t=new TareaBoton();  // Creamos una instancia de la clase Hilo que creamos
                        t.start(); // ejecutamos el hijo
  
 }
    
   }
   
   class TareaBoton extends Thread{    
     // creamos una innerclass que derive de los Hilos y manejamos todo lo que deseamos realizar en el método run.
       public void run(){
    
           try {
  Thread.sleep(10000);
  System.out.println("Finalizo el proceso.. ");
  } catch (final InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
      }
   
   }
}


Con esto nuestra aplicación no tendrá el problema de que aparenta estar congelado!!! Cualquier novedad pueden hacer sus comentarios.

lunes, 9 de enero de 2012

Recuperar el código autogenerado despues de un insert

A continuación se describen las sentencias necesarias para realizar una sentencias insert hacia la base de datos, y recuperar el código autogenerado de dicho insert.
public void insertarAlumno2(Connection cn, Alumno obj)throws Exception{

//Generamos la sentencias insert

String sql="INSERT INTO ALUMNO VALUES (null,'"+obj.getNombre()
+"','"+obj.getDireccion()+"','"+obj.getTelefono()+"')";

//Creamos el objeto Statement en la que se debe especificar que deseamos recuperar las claves generadas

PreparedStatement ps = cn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
//Ejecutamos la sentencias sql
ps.executeUpdate();  

// Recuperamos los resultados en el objeto resulset
ResultSet rs = ps.getGeneratedKeys();


while (rs.next()) {
int claveGenerada = rs.getInt(1);
System.out.println("Clave generada = " + claveGenerada);
}