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

jueves, 5 de octubre de 2017

File Uploader hecho en Java asociado a Web con PHP

Hola a todos, ahora mismo estoy participando de un proyecto el cual tiene tres componentes. A continuación paso a describirlos:


  • 1er Componente: Componente hecho en matlab que recoge datos de sensores y los guarda en un archivo de texto.
  • 2do Componente: Aplicación Web en PHP que muestra los datos recogidos del 1er componente.
  • 3er Componente: Aplicación JAVA que envía el archivo de texto con los datos tomados hacia la aplicación Web.

Bien, en este momento dejaré un ejemplo de como enviar files, hacia una Web hecha en PHP, muy parecido como lo hago en el proyecto, estoy seguro que le ayudará mucho.

Para hacer el componente en JAVA me basé de algo ya hecho, y para no reinventar la rueda, sólo la modifiqué a mi estilo. La Web de la cual me base esta aquí .

Voy a explicar no con mucho detalle lo que hace este componente, pero les ayudará a entenderla.

1) Web PHP

El 1er IF, ayudará a verificar si hay conección
El 2do IF ayudará a verificar si viene un archivo








2) Proyecto JAVA

Este proyecto lo he hecho con el IDE Netbeans y tiene una estructura muy simple.

El archivo MultipartUtility es el que contiene toda la lógica (métodos y librerías) para comprobar conectividad y enviar files a una dirección

El archivo AppFileUploader es el que llama y ejecuta a MultipartUtility


3) Librerías utilizadas

Las librerías que se utilizaron son las que se muestran a continuación.



4) Los métodos de la clase MultipartUtility

verificaConectividad: responde 1 si existe conectividad con la Web en PHP y 0 si no la hay. Recibe como parámetro la ruta.



configuraEnvío: Su nombre de por si te explica que hace, recibe como parámetro el URL y la codificación. Dentro se encuentra la cabecera Content-Type suyo valor es multipart/form-data (cómo vamos a enviar los datos)



addFormField: Ayuda a agregar los encabezados (Content-Disposition) y el tipo de medio que representa el contenido del mensaje (Content-type)



addFilePart: En este método se configuran el encabezado Content-Disposition, que indica si se espera que el contenido se muestre línea en el navegador (página Web) o como un archivo adjunto. Asimismo el encabezado que indica el método que ha sido usado (Content-Transfer-Encoding), para este caso "binary".



addHeaderField: Se configura otras cabeceras, por ejemplo User-Agent para saber el tipo de aplicación, o la cabecera  



Bien, sin más, les dejo el código fuente con todo el proyecto. Lo he probado localmente y con un hosting y funciona perfectamente, sólo deben configurar correctamente las rutas.

Descarguen el proyecto desde aquí.

Hasta la próxima, su amigo Carlos Z.

domingo, 17 de marzo de 2013

JPA con MySQL

JPA (Java Persistence API): Es la API de persistencia de datos desarrollada para la plataforma Java EE.

Es un framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).

El objetivo que persigue el diseño de esta API, es no perder las ventajas de la orientación a objetos al interactuar con una base de datos relacional, y permitir usar objetos regulares (conocidos como POJOs --> un POJO es una palabra utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial).

Referencia: http://es.wikipedia.org/wiki/Java_Persistence_API

JPA fue creado con java EE5 para resolver el problema de persistencia de datos. JPA es una abstracción arriba de JDBC que hace posible ser independiente de SQL. Todas las clases y anotaciones de esta API están en el paquete javax.persistence.

Los principales componetes de JPA son:
  • ORM, que es el mecanismo para mapear objetos a datos almacenados en una base de datos relacional.
  • Un administrador de entidades realiza operaciones sobre  una base de datos relacional, tal como crear leer, actualizar y eliminar.
  • El Java Persistence Query Languaje (JPQL), te permite recuperar con un lenguaje orientado a objetos.
  • Transacciones y mecanismos de bloqueos concurrente cuando acceden a datos proporcionados por Java Transaction API (JTA)
Ahora si vamos a crear nuestro proyecto con Netbeans 7.3, sino lo pueden hacer con Eclipse da igual para este pequeño ejemplo.

1) Crear una base de datos llamada ejemplo
2) Crear una tabla Innodb de nombre Persona con los siguientes datos.



3) Ahora vamos a crear una aplicación Java Standar Edition para ellos vamos al menú File (Archivo) --> New Project (Nuevo proyecto)


4) Eligen la ruta donde se guardará su proyecto.



5) Para poder realizar el enlace al motor de base de datos MySQL debemos incluir el JDBC, para ellos damos click derecho sobre la carpeta Libraries (Librerías)


6) Debe salir ahora una pantalla igual a la que muestro, deben buscar el nombre MySQL JDBC Driver



7) Ahora el proyecto debe quedar de la siguiente forma.


8) Ahora vamos a crear nuestra clase entidad y clase controladora. Para realizar esto y ordenar nuestro proyecto debemos crear dos paquetes de nombre Entidad y Control, entonces debemos dar click derecho sobre la carpeta Source Packages (Ruta de paquetes).




(Repitan el mismo proceso para el paquete Control)

9) Ahora debemos crear nuestra clase entidad, para esto damos click derecho sobre el paquete entidad, elegimos el menú New (Nuevo) --> Entiti classes from database (Clases entidad a partir de una base de datos)



Ahora sólo deben seguir las imágenes



Luego presionan el botón Next (Siguiente)


Ahora sólo deben configurar su conexión a su base de datos, en mi caso cambio la opción Database con el valor mysql y la cambio por la base de datos ejemplo.


Presionan luego a todo Next (Siguiente) y luego presionan Finish (Terminar)

10) Ahora debemos elegir las tablas para este ejemplo, elijo la tabla Persona y presiono el botón add (agregar)


Luego presionan el botón Next (Siguiente) y les aparecerá la siguiente pantalla donde sólo deben presionar el botón Finish (Terminar)


Podemos ver que Netbeans nos ha creado nuestra clase entidad con todas las anotaciones generales, entre ellas la más importante la anotación @Entity que le dice a la clase que es una clase entidad.



11) Ahora debemos crear nuestra clase Control, para esto debemos para esto damos click derecho sobre el paquete Control y elegimos la opción Other (Otro)


Elegimos la opción Persistence (Persistencia) y elegimos la opción JPA Controller Classes from Entity Classes (Clases controladoras JPA a partir de una clase entidad) y presionan el botón Next (Siguiente)


Elegimos la única clase entidad, que en este ejemplo es Entidad.Persona y presionamos el botón Add (Agregar) y presionamos el botón Next (Siguiente) y luego Finish (Terminar)


12) Así es como queda nuestro proyecto hasta el momento


13) Ahora mostramos el código como debe quedar nuestra clase.



Ya para terminar, yo no elegiría utilizar las clases hechas por el propio IDE por motivo que crea los métodos de manera ineficiente, por cada insert, update, delete realiza un begin y luego un commit o rollback.

Esto como sabemos sólo se debería hacer cuando sean dos o más transacciones.

Dejo una parte del código generado.

Nos vemos hasta la próxima su amigo Carlos Zacarías


martes, 18 de mayo de 2010

Crear clases entidad con NetBeans 6.8 y pool de conecciones

Para crear nuestras clases entidad antes hemos debido crear primero nuestro pool de conecciones, que ya lo he publicado anteriormente. Bueno una vez creado nuestro pool de conecciones que lo administra el servidor GlassFish, para no estar creando nosotros mismos las clases entidad de nuestras tablas de nuestra base de datos, NetBeans se encargá el mismo de crearlas mediante unos cuantos click, como hacerlo lo describiré mediante imágenes como siempre.

1ro) Click derecho sobre el paquete donde deseamos crear las clases entidad, (de preferencia el nombre del paquete coloquenle Entidades) de la siguiente manera


2do) Debemos elegir el nombre de nuestra conección JNDI que se creó con el pool de conecciones en mi caso le llame poolAutos, automáticamente, me pide que ingrese usuario y contraseña de la base de datos, en mi caso ingresé usuario: root y contraseña: "" y apareceran las tablas de la base de datos que se conecta con el pool de conecciones en mi caso aparecen las tablas que aparecen en la imagen, y le damos agregar todas o las que ustedes deseen en su caso, luego presionan el boton siguiente.


3ro) Ahora aparece la descripción donde se van a generar nuestras clases entidad y a la vez nos sale un boton en la parte inferior que indica si deseamos crear persistencia de datos, presionamos el boton (Porque deseamos que nuestras clases entidad seas persistentes) y elegimos HIBERNATE como se muestran en las siguientes imágenes y presionamos al final el boton siguiente.






4to) Como ultimo paso marcamos el check de que las clases entidad se llamen igual a las tablas de nuestra base de datos.


Espero que les haya ayudado en algo, para crear de manera mas fácil un sistema web o de escritorio. Suerte

jueves, 22 de abril de 2010

Pool de conecciones en NetBeans 6.8 con GlassFish 3.0

Hola nuevamente, aqui revisando uno que otro manual, resumo lo que he aprendido con respecto a la creación de un pool de conecciones en java con mysql.

Como saben para una mejor administración de pool de conecciones en java la debe realizar nuestro servidor GlassFish ya que él es el mas indicado para esta tarea, por las puras no tiene esta funcionalidad, además el programador debe centrarse en su tarea que es programar la lógica del negocio.

Bueno NetBeans es un IDE bastante bueno y averigué como hacer un pool de conecciones sobre la versión 6.8. (Todo lo voy a colocar con imágenes que da una mejor idea de como hacerlo)

1er paso) Ir a la pestaña de prestaciones dan click derecho sobre MySQL y pican "conectar usando"



2do paso) Llenan el formulario, con la base de datos MySQL donde se conectaran con su usuario y password, al final pican "Aceptar"


3er paso) Van al menu "Archivo" y pican la opción "Archivo nuevo"

4to paso) En su proyecto eligen la opción "GlassFish" y luego eligen "JDBC Connection Pool" y pican sobre el boton siguiente


5to paso) Eligen de la lista desplegable el la conección creada anteriormente como lo muestra la imagen y colocan un nombre de referencia al pool que gestionará GlassFish posteriormente y pican sobre el boton siguiente


6to paso) Se muestra la siguiente pantalla, remueven algunos parámetros como el password y colocan el de su base de datos y agregan los parámetros "serverName" con valor "localhost" y "databaseName" con valor "bd" (su base de datos) y luego pican sobre el boton siguiente.


7mo paso) A continuación aparece un formulario con datos prederteminados del pool de conecciones, con un número mínimo y maximo de conecciones sobre el pool entre otros datos más se pueden modificar al gusto y luego pican sobre el boton terminar.

8vo paso) Para verificar que nuestro pool se ha creado perfectamente vamos al archivo "sun-resources.xml" y verifican si los siguientes datos existen.



9no paso) Para crear un recurso que pueda manejar nuestro servidor GlassFish pican sobre el menu "Archivo" y luego pican sobre la opción "Archivo nuevo" y eligen nuevamente "GlassFish" pero esta vez "JDBC Resource" y pican sobre el boton siguiente.


10mo paso) Eligen el pool creado anteriormente de la lista y pican sobre el boton terminar


11vo paso) Ejecutamos todo lo que hemos hecho hasta el momento y debe salirnos el siguiente mensaje en letras verdes "Generación correcta".


12vo paso) Ahora tenemos que ir a la consola del GlassFish de la siguiente forma


13vo paso) Nos vamos dentro de la consola de GlassFish al menu "Recurso -> JDBC -> Conjunto de conecciones" y allí nos debería mostrar nuestra conección al pool creado.


14vo paso) Para probar si está gestionando nuestro servidor glassFish el pool de conecciones entramos dentro del enlace mostrado en azul en mi caso "coneccionPoolAutos" y luego picamos sobre el boton sondeo y nos debe mostrar la siguiente pantalla.

Seguidores