Buenas días a todos!, en este quinto tutorial de JAVA – PHP -MySQL vamos a ver como podemos comunicarnos insertar datos a una base de datos MySQL desde JAVA con PHP,
en un principio el esquema que vamos a seguir es una arquitectura
cliente-servidor, podéis ver un esquema en el siguiente gráfico:
Esquema JAVA – PHP – MySQL
Antes de empezar, vamos a repasar el índice de esta serie de tutoriales así como los objetivos que nos proponemos.
- JAVA – PHP – MySQL: I Introducción
- JAVA – PHP – MySQL: II Creación de una base de datos en MySQL
- JAVA – PHP – MySQL: III Crear una conexión con la base de datos en PHP
- JAVA – PHP – MySQL: IV Consultas Básicas e inserción de datos en PHP
- JAVA – PHP – MySQL: V Insertar datos en MySQL desde JAVA con PHP
- JAVA – PHP – MySQL: VI Obtener datos de MySQL en JAVA con PHP
Los objetivos que nos proponemos con esta serie de tutoriales son los siguientes:
MySQL
- Aprender a crear una base de datos en MySQL.
PHP
- Aprender a insertar datos en nuestra base de datos.
- Aprender a mostrar datos de nuestra base de datos.
- Consolidar los conocimientos aprendidos en la serie de tutoriales JSON.
- Mostrar los datos introducidos en la base de datos en pantalla.
JAVA
- Crear JSON a partir de los datos introducidos por el usuario.
- Enviar JSON vía GET en JAVA.
- Enviar JSON vía POST en JAVA.
- Obtener un JSON generado en PHP.
Una vez que hemos repasado lo que pretendemos hacer vamos a comenzar este quinto tutorial de JAVA – PHP – MySQL.
Para continuar un poco con la línea de los tutoriales vamos a suponer
que hemos realizado los anteriores tutoriales satisfactoriamente. Hemos
creado una base de datos donde almacenaremos los datos de usuario
(Tutorial II). Seguidamente hemos creado una clase en PHP para
administrar esta tabla en la base de datos (Tutorial IV).
Este tutorial consta de dos partes, la parte del cliente (Java) donde se generará un JSON (Ver serie de Tutoriales JSON) y se enviará por POST
a la parte del servidor (PHP), el cual consistirá en un archivo PHP que
espera una llegada de datos por POST, procesará el contenido del JSON y lo almacenará en la base de datos.
Servidor
Teniendo en cuenta que en el tutorial anterior creamos una clase llamada usuariosClass.php con las siguientes funciones:
- conectarBD
- desconectarBD
- getArraySQL
- createUser
- getAllInfo
- getNombre
- getApellidos
- getEmail
Vamos a crear dos archivos en PHP que este a la escucha de datos, los archivos en cuestión serán listenPost.php y listenGet.php. El
primero de ellos escuchará llamadas mediante método POST, mediante que
el segundo escuchará las llamadas mediante el método GET.
A continuación se mostrará el código de ambos archivos comentados.
listenPost.php
listenGet.php
En ambos casos comprobamos que hemos recibido un parámetro llamado json con el contenido del JSON en texto plan, una vez que hemos recibido el JSON lo tenemos que decodificar y eliminar la barra “\”. Decodificamos el JSON e insertamos un nuevo usuario en la base de datos.
Cliente
Una vez que hemos creado nuestro servidor
en PHP para la escucha de datos, vamos a crear un nuevo programa en
JAVA que envíe los datos a nuestro servidor. En mi caso el servidor
será local por lo que las llamadas deberán enviarse a localhost.
Vamos a usar Netbeans como IDE JAVA. En primer lugar creamos una nueva aplicación Java llamada JavaPHPMySQL cuyo main contenga lo siguiente:
Antes de comenzar a explicar el código por encima hay que indicar que
para que este ejemplo funciones es necesario importar la librería json-simple-1.1.1.jar en nuestro proyecto. Esta librería nos permitirá gestionar objetos JSON.
Observamos que la clase principal del cliente consta de dos métodos para enviar los datos encapsulados en un JSON, el método sendPost() y sendGet(). Es obvio que el metodo sendPost enviará un JSON encapsulado a nuestro servidor mediante POST y el método sendGet lo enviará mediante método GET.
Podemos observar que ambos métodos son similares. en un principio
generamos en texto plano un JSON con los datos del usuario que queramos,
en el ejemplo he puesto mis propios datos. Una vez que tenemos el JSON
en texto plano lo enviamos con ayuda de los objetos URL url y HttpURLConnection con. Así mismo obtenemos la respuesta del servidor y la mostramos por pantalla.
Por último, hay que tener en cuenta los siguientes puntos a la hora de realizar este tutorial:
- Hay que indicar la url del servidor donde queremos enviar los datos en la constante SERVER_PATH.
- Este tutorial se ha basado en el envio de JSON, pero no es extrictamente necesario encapsular los datos en un JSON, podemos enviar los datos en texto plano si queremos, enviar los datos en JSON nos va a ahorrar trabajo a la hora de que enviemos una gran cantidad de datos a almacenar.
- El envío de datos por GET tiene la desventaja de la cantidad de caracteres que podemos enviar por este método, si enviamos muchos datos a la vez encapsulados en un JSON nos podría dar error de longitud.
No hay comentarios:
Publicar un comentario