S.O OpenSuse

openSUSE es un sistema operativo libre basado en Linux. La distribución openSUSE es estable, sencilla de usar, completa y de propósito general

Node.js

Node es una platafoma y un entorno de desarrollo basado en JavaScript al lado del servidor

Java

Java es un entorno de desarrollo multiplataforma

Java

Java es un entorno de desarrollo multiplataforma

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

miércoles, 27 de febrero de 2013

Exportar lista de Directorios a Excel, txt o Pdf usando itext y POI

En algunas ocaciones necesite una saber la lista de de archivos que se encontraban dentro de un directorio y subdirectorio y guardarlos en un archivo. asi que implemente una pequeña utileriapara ello.


Requisitos


Creando el proyecto

Creamos un nuevo proyecto Java y agregamos las librerias de iText y POI



Creamos una nueva clase llamada ExportaTxt dentro de esta crearemos el metodo crearTxt le pasaremos como parametros un List de String y un String con la cadena y el nombre del archivo.
01 public class ExportaTxt {
02 
03     public void crearTxt(ArrayList<String> list, String archivo) {
04         FileWriter fichero = null;
05         PrintWriter pw = null;
06         try {
07             fichero = new FileWriter(archivo);
08             pw = new PrintWriter(fichero);
09 for (String string : list) {
10                 pw.println(string);
11             }
12         } catch (Exception e) {
13             e.printStackTrace();
14         }
15         finally {
16             try {
17                 if (fichero != null) {
18                     fichero.close();
19                 }
20             } catch (Exception e) {
21                 e.printStackTrace();
22             }
23         }
24     }
25 }
26 
Ahora agregamos la clase exporta excel esta tendra un metodo que crearExcel al cual le pasaremos como parametros una lista de directorios, el nombre del libro y la ruta con el nombre del archivo.
01 public class ExportaExcel {
02 
03     public void crearExcel(ArrayList<String> list, String libro, String archivo) {
04         HSSFWorkbook book = new HSSFWorkbook();
05         HSSFSheet hoja = book.createSheet(libro);
06         HSSFRow fil = hoja.createRow(0);
07         HSSFCell celd = fil.createCell(0);
08         celd.setCellValue("Lista de archivos");
09         CellStyle stilo = book.createCellStyle();
10         stilo.setFillForegroundColor(HSSFColor.GREY_50_PERCENT.index);
11         stilo.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
12         HSSFFont font = book.createFont();
13         font.setFontHeightInPoints((short) 12);
14         font.setBoldweight(Font.BOLDWEIGHT_BOLD);
15         stilo.setFont(font);
16         celd.setCellStyle(stilo);
17 for (String lis : list) {
18             HSSFRow fila = hoja.createRow(list.indexOf(lis) + 1);
19             HSSFCell celda = fila.createCell(0);
20             celda.setCellValue(lis);
21             hoja.autoSizeColumn(0);
22             try {
23                 FileOutputStream fichero = new FileOutputStream(archivo);
24                 book.write(fichero);
25                 fichero.close();
26             } catch (Exception e) {
27                 e.printStackTrace();
28             }
29         }
30     }
31 }
32 

ahora creamos la clase ExportaPdf esta clase tendra un metodo llamado crearPdf le pasaremos como parametros la lista de archivos o directorios y la ruta con el nombre del archivo.
01 public class ExportaPdf {
02 
03     public void crerPdf(ArrayList<String> list, String archivo) {
04         try {
05             Document document = new Document();
06             PdfWriter.getInstance(document, new FileOutputStream(archivo));
07             document.open();
08             Font font = new Font();
09             font.setStyle(Font.BOLD);
10             PdfPTable table = new PdfPTable(1);
11             table.setWidths(new int[] {1});
12             PdfPCell cell;
13             cell = new PdfPCell(new Phrase("lista de archivos", font));
14             cell.setHorizontalAlignment(Element.ALIGN_CENTER);
15             table.addCell(cell);
16 for (String string : list) {
17                 cell = new PdfPCell(new Phrase(string));
18                 cell.setHorizontalAlignment(Element.ALIGN_LEFT);
19                 table.addCell(cell);
20             }
21             document.add(table);
22             document.close();
23         } catch (Exception e) {
24             e.printStackTrace();
25         }
26 
27     }
28 } 

Creamos una clase que sera nuestro controlador esta clase contenda un medor que nos retorne una lista de los archivos ,directorios y subdirectorios. ademas se implemetaran tres metodos exportarTxt, exportarExcel y exportarPdf.
01 public class Direc {
02 
03     ArrayList lista = new ArrayList<String>();
04 
05     public ArrayList<String> getDir(String directorio) {
06         File file = new File(directorio);
07         File[] dirs = file.listFiles();
08 for (File file1 : dirs) {
09             lista.add(file1.getName());
10             if (file1.isDirectory()) {
11                 getDir(file1.getAbsolutePath());
12             }
13         }
14 
15         return lista;
16     }
17 
18     public void exportarExcel(String dir, String dondeGuardar) {
19         ArrayList<String> list = getDir(dir);
20         ExportaExcel excel = new ExportaExcel();
21         excel.crearExcel(list, "lista de archivos", dondeGuardar + "/archivos.xls");
22     }
23 
24     public void exportarTxt(String dir, String dondeGuardar) {
25         ArrayList<String> list = getDir(dir);
26         ExportaTxt txt = new ExportaTxt();
27         txt.crearTxt(list, dondeGuardar + "/archivos.txt");
28     }
29 
30     public void exportarPdf(String dir, String dondeGuardar) {
31         ArrayList<String> list = getDir(dir);
32         ExportaPdf pdf = new ExportaPdf();
33         pdf.crerPdf(list, dondeGuardar + "/archivos.pdf");
34     }
35 }
36 

y por ultimo implementamos un pequeña interfaz.


 y listo.

aqui les dejo el codigo fuente.






martes, 30 de octubre de 2012

CRUD Hibernate 3 con Sql Server 2008 en NetBeans - Parte II.- Desarrollo

Continuando con la Practica CRUD Hibernate 3 con Sql Server 2008 ahora vamos a realizar altas, bajas, cambios de una Base de Datos. 
  • Creando los Paquetes 

    Creamos un nuevo proyecto web llamado DVDStore debemos crear los paquetes:
    • bean
    • dao
    • util
    • vista
      En el paquete default crearemos los archivos de configuracion hibernate.cfg.xml y hibernate.reveng.xml tal como se crean en el post anterior. 
 En el paquete bean creamos los archivos que seran mapeados a la base de datos. sobre el paquete bean -> new -> Hibenate Mapping Files and POJOs from Database. con esto crearemos los archivo Actor.hbm.xml y Actor.java
En el paquete until creamos la clase HibenateUtil esta clase viene incluida en el Framework de Hibernate. 
new->HibernateUtil y le nombramos HibenateUtil
continuamos creando nuetra clase DAO(Data Access Object) la cual nos facilitara la manipulacion de los datos contenidos en la tabla. esta clase estara contenida en el paquete dao y la llamaremos ActorDao en esta clase tendremos los metodos. insert(), update(Actor actor),  find(String busqueda), find(int id) y delete(int id).
05 package dao;
06 
07 import bean.Actor;
08 import java.util.ArrayList;
09 import javax.swing.JOptionPane;
10 import org.hibernate.HibernateException;
11 import org.hibernate.Session;
12 import org.hibernate.SessionFactory;
13 import org.hibernate.Transaction;
14 import org.hibernate.cfg.Configuration;
15 import util.HibernateUtil;
16 
17 /**
18  *
19  * @author xm07689
20  */
21 public class ActorDao {
22 
23     public void insert(Actor actor) {
24         Session sess = null;
25         try {
26             SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
27             sess = factory.getCurrentSession();
28             Transaction tx = sess.beginTransaction();
29             sess.save(actor);
30             tx.commit();
31             JOptionPane.showMessageDialog(null, "Successfully data insert in database");
32         } catch (Exception e) {
33             JOptionPane.showMessageDialog(null, e.getMessage());
34         }
35     }
36 
37     public void update(Actor actor) {
38         Session sess = null;
39         try {
40             SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
41             sess = factory.getCurrentSession();
42             Transaction tx = sess.beginTransaction();
43             sess.update(actor);
44             tx.commit();
45             JOptionPane.showMessageDialog(null, "Successfully data update in database");
46         } catch (Exception e) {
47             JOptionPane.showMessageDialog(null, e.getMessage());
48         }
49     }
50 
51     public ArrayList<Actor> find(String busqueda) {
52         Session sess = null;
53         ArrayList<Actor> listAct;
54         SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
55         sess = factory.getCurrentSession();
56         Transaction tx = sess.beginTransaction();
57         if (busqueda.equals("")) {
58             listAct = (ArrayList<Actor>) sess.createQuery("from Actor").list();
59         } else {
60             listAct = (ArrayList<Actor>) sess.createQuery("from Actor where name='" + busqueda + "'").list();
61         }
62         return listAct;
63     }
64 
65     public Actor find(int id) {
66         Actor actor = null;
67         Session sess = null;
68         SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
69         sess = factory.getCurrentSession();
70         Transaction tx = sess.beginTransaction();
71         actor = (Actor) sess.createQuery("from Actor where actor_id=" + id).uniqueResult();
72 
73         return actor;
74     }
75 
76     public void delete(int id) {
77         try {
78             Session sess = null;
79             sess = HibernateUtil.getSessionFactory().openSession();
80             sess.beginTransaction();
81             Actor actor = (Actor) sess.createQuery("from Actor where actor_id=" + id).uniqueResult();
82             sess.delete(actor);
83             sess.getTransaction().commit();
84             sess.close();
85         } catch (HibernateException ie) {
86             JOptionPane.showMessageDialog(null, ie.getMessage());
87         }
88     }
89 }  

El ultimo paso es creal la vista asi que en este paquete creamos un nuevo JFrame Form este ya viene predefinido en los paqutes de Swing Gui Forms de Netbeans
new->JFrame Form lo llamaremos FrmActor.

el proyecto debe quedar de la siguente forma.
  
el paquete img es una carpeta que debemos crear para ir guardando las imagenes de los actores este proceso de guardado y se hace en la clase FrmActor. les dejo unas imagenes de como funciona el ejemplo y ademas les pondre el script de la base de datos y los fuentes del proyecto. espero les sirva de ejemplo.

                                                      cargando los datos......
Ventana Principal

Seleccionando un actor
cambiando la foto

Saludos y dejen sus cometarios.

viernes, 27 de julio de 2012

CRUD Hibernate 3 con Sql Server 2008 en NetBeans - Parte I.- Configuracion


Hibernate es un poderos framewok  de Mapeo Objeto Relacional el cual podemos implementar an la capa del Acceso a Datos. En esta ocacion les mostrare como configurarlo en el IDE de Desarrollo Netbeans.
utilizando SQL Server 2008 como manejador de Bases de datos, bueno sin  mas rodeos vamos a iniciar con la configuracion.

Requisitos


Creando la Base de Datos

Para empezar debemos tener un esquema de una base da Datos, para ello crearemos una Base de Datos llamada DVDStore a la cual a gregaremos una tabla llamada actor.
01 USE [DVDStore]
02 GO
03 
04 CREATE TABLE [dbo].[actor](
05  [actor_id] [int] IDENTITY(1,1) NOT NULL,
06  [name] [varchar](50) NULL,
07  [first_name] [varchar](50) NULL,
08  [last_name] [varchar](50) NULL,
09  [genero] [char](1) NULL,
10  [last_update] [datetime] NULL,
11  [photo] [varchar](50) NULL,
12  CONSTRAINT [PK_actor] PRIMARY KEY CLUSTERED ([actor_id] ASC ) 
 

Construyendo un nuevo Proyecto

En NetBeans creamos un nuevo proyecto Java Aplications.

  Una vez creado en Proyecto agregamos las librerias de hibernate.

 Ahora vamos a crear un nueva coneccion de Base de Datos.

en la pestaña de servicios damos click derecho sobre la opcion Bases de Datos.

Seleccionamos nueva coneccion.

En combobox Driver(controlador), seleccionamos nuevo controlador. aparecera una nueva ventana donde elegiremos el driver JDBC(sqljdbc4).

En el Combobox nos aparecera el nuevo driver agregado lo selecionamos y damos click en siguiente.

En esta ventana agregamos:

   servidor:    mi_servidor
   puerto:       1433
   Base de Datos:DVDStore
   Instancia:    sqlspress
   Usuario:      sa
   Contraseña:   *********



En nuestro Poyecto agregamos 3 paquetes:
  • bean
  • dao
  • vista
  • util
 Crearemos un archivo de configuracion de hibernate, Nuevo-> otros->hibernate->Hibernate Configuration Wizard, se le dejaremos el nombre de default. Seleccionamos la coneccion que se creo anteriormente.
01 <?xml version="1.0" encoding="UTF-8"?>
02 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration 
03 DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
04 <hibernate-configuration>
05   <session-factory>
06     <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.
07     jdbc.SQLServerDriver</property>
08     <property name="hibernate.connection.url">jdbc:sqlserver:
09     //DESARROLLOPC\SQLEXPRESS:1433;databaseName=DVDStore</property>
10     <property name="hibernate.connection.username">admin</property>
11     <property name="hibernate.connection.password">qwert12345</property>
12     <property name="hibernate.connection.pool_size">10</property>
13     <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect<
14     /property>
15     <property name="hibernate.show_sql">true</property>
16     <property name="hibernate.current_session_context_class">thread</property>
17     <property name="hibernate.connection.autocommit">true</property>
18     <mapping resource="bean/Actor.hbm.xml"/>
19   </session-factory>
20 </hibernate-configuration>
 
A continuacion crearemos un nuevo archivo de Hibernate Reverse Engeering Wizard
Nuevo-> otros->hibernate->Hibernate Reverse Engeering Wizard
agregamos a las tablas que deseamos mapear. 
01 <?xml version="1.0" encoding="UTF-8"?>
02 <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate 
03 Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.
04 net/hibernate-reverse-engineering-3.0.dtd">
05 <hibernate-reverse-engineering>
06   <schema-selection match-catalog="DVDStore" match-schema="dbo"/>
07   <table-filter match-name="actor"/>
08 </hibernate-reverse-engineering>
 
Sobre el paquete Bean creamos un nuevo Hibernate Mapping Files and POJOS from 
Database nos va crear las clases Bean(POJOS)
 mapeadas de las tablas que se agregaron al archivo Hibernate Reverse Engeering Wizard
  En el paquete util creamos una nueva clase Hibernateutil Nuevo-> otros->hibernate->
HibernateUtil  
 
 
 
En el paquete dao creamos una nueva clase llamada ActorDao el cual tendra un
 metodo nos retornara un ArrayList de todos los Actores del la tabla actor y otro
metodo metodo para insertar un Actor
 
01 public class ActorDao {
02 
03     public ArrayList<Actor> find() {
04 
05         ArrayList<Actor> listAct;
06         Session sess = HibernateUtil.getSessionFactory().getCurrentSession();
07         Transaction tx = sess.beginTransaction();
08         listAct = (ArrayList<Actor>) sess.createQuery("from Actor").list();
09         return listAct;
10 
11     }
12 
13     public void insert(Actor actor) {
14         Session sess = HibernateUtil.getSessionFactory().getCurrentSession();
15         Transaction tx = sess.beginTransaction();
16         sess.save(actor);
17         tx.commit();
18     }
19 }

Ahora creamos un clase de prueba llamada TestStore  donde primero insertamos un nuevo Actor y posteriormente imprimimos el nombre de todos los actores que estan en la base de datos.

01 public class TestStore {
02 
03     public static void main(String[] args) {
04         ActorDao dao = new ActorDao();
05 
06         Actor newobj = new Actor();
07         newobj.setFirstName("Joseph");
08         newobj.setLastName("Rosa");
09         newobj.setLastName("Alberth");
10         newobj.setGenero('M');
11         newobj.setLastUpdate(new Date());
12         dao.insert(newobj);
13 
14         ArrayList<Actor> listAct = dao.find();
15 for (Actor actor : listAct) {
16             System.out.println(actor.getFirstName());
17         }
18     }
19 }  

El proyecto debe quedar de esta manera.

  



En el siguiente post Realizaremos un CRUD con hibernate y sql Server 2008 con NetBeans utilizando Java Swing.

porfavor dejen sus comentarios para ir mejorando los posts y se aceptan preguntas a cerca del tema.

Saludos.


miércoles, 27 de junio de 2012

Entorno de Desarrollo tipico en Java

A manera de una Breve introduccion les traigo un ejemplo tipico de desarollo en java. este Diagrama lo podemos encontrar el libro de DEITEL Como Programar en Java Séptima edición.

martes, 26 de junio de 2012

Bienvenidos al blog

Hola, Bienvenidos ha este blog donde encontrara ejemplos de como programar en los lenguajes como Java, Php, c#. En mi particular punto de vista Java es un potente lenguaje de programacion ya que tambien cuenta con un gran numero de frameworks que nos facilitan las cosas al momento de programar ademas es muy robusto, Java sin duda es el languaje mas usado hoy en dia.

Php por otro lado es lenguaje orientado a la web bastante facil de utilizar pero muy eficiente al momento de desarrollar un sistema web y contamos con poco tiempo.

y por otro lado tambien esta C# este lenguaje de programacion lanzado por Microsoft es similar a Java puede ser orientado a la web o a Sistemas de escritorio.