(+34) 958084455 informacion[arroba]academiaandroid.com
Layout Activity Citas

Sincronización con MySQL: proyecto con Android Studio para Android 5.0

Post Series: Conexión a una Base de Datos externa desde Android (II)

Generamos una nueva versión de la App Android de gestión de citas y reuniones de trabajo, realizándola con Android Studio para la versión Android 5.0 Lollipop.

Recordamos que este proyecto nos sirve de ejemplo para explicar detalladamente cómo realizar  la conexión y sincronización de Android con un servidor externo de base de datos MySQL. Esta App nos permite insertar y consultar registros en una base de datos MySQL externa, creada previamente desde la propia aplicación Android.

Como siempre, tienes todo el código . . .


Contenido disponible para los usuarios Premium. ¡Únete a nosotros!

This Post Has 9 Comments

  1. Estimados, estoy viendo este tutorial y tengo algunas dudas sobre los parámetros para conectarme a la base de datos.
    Tengo contratado un servicio de hosting que me permite trabajar con MySQL.
    Tengo creada una base de datos a la cual le asignaron permiso para poder conectarme en forma remota.
    Los datos que tengo para conectarme a la base de datos son
    hostname , nombre base de datos, usuario, contraseña y el número de puerto ( 3306 )
    Para el caso de la aplicación Android, ingresé como dato hostname, la dirección IP que me asignaron para conectarme vía FTP.
    Nombre de usuario y contraseña: Los mismo que uso para conectarme a mi FTP.
    Además en la clase MainActivity cambie la declaración de la base de datos

    private String baseDatos = “nombre de mi base de datos”;

    Cambie el nombre de la base de datos debido a que tengo ya creada una y es a la que le asignaron los permisos de acceso remoto.

    Al ejecutar la aplicación desde mi móvil, no me aparece ningún tipo de error, pero no se conecta.Ingreso los datos y al hace clic en abrir conexión. No sucede nada.

    Los datos de MySQL son: Ver 14.14 Distrib 5.6.25, for Linux (x86_64).
    La librería ‘mysql-connector-java-5.1.31-bin.jar’es la correcta para esta versión del servidor ?

    Que puedo controlar ? o verificar para determinar el error ?

    Esperando me puedan ayudar para seguir avanzando en mis conocimientos
    Desde ya gracias

    Marcelo

  2. Hola Marcelo,

    Así de manera rápida, y yendo un poco ‘a ciegas’ al no tener mensajes de error que analizar, nos suena a problemas de conexión (algún parámetro que no es correcto de tu servicio hosting).

    Comentar que aunque el proyecto se conecta a una base de datos externa a la aplicación, no se realiza sobre un servidor externo a la máquina donde se ejecuta el emulador de Android, y por lo tanto pueden influir numerosos aspectos, difíciles de conocer por nuestra parte.

    De todas maneras, vamos a hacer unas pruebas a ver si podemos detectar algo en el proyecto que fuera la causa o que nos de alguna orientación.
    Saludos

    1. Hola, tras revisar el proyecto y probarlo de nuevo, comprobamos que la aplicación funciona bien (y tal como se puede ver en el vídeo) desde el emulador conectándose a un servidor externo MySQL en la red local. Como decíamos, la conexión a servidores fuera de allí implica más elementos y va un poco más allá de este ejemplo, y sin tener tampoco mensajes de error, es difícil decir más.
      Una alternativa que no sabemos si has probado, porque nos preguntaste por esos tutoriales sobre arquitectura REST, es utilizar servicios web.

      Sentimos no poder decirte más, pero aunque tratamos de ayudaros a los usuarios Premium si tenéis dudas con nuestros contenidos y los conceptos que allí se explican, a veces las consultas requieren más un soporte técnico que investigue problemas teniendo en cuenta configuraciones/entornos particulares. Quizás foros especializados, donde precisamente no se explican las bases/fundamentos pero sí dan este tipo de soporte para problemas concretos, tipo stackoverflow.com, puedan serte una opción.

      Un saludo

  3. Hola, gracias por las respuesta.. En realidad aun no probe los servicios REST.. los estoy leyendo. pero no los pruebo aun.
    Respecto a la respuesta que me envian Uds, veo que me comentan que estan probando desde el emulador, en mi caso estoy probando con mi dispositivo movil real.. Eso puede influir ??
    De todos modos seguire con el tema REST .
    Saludos y muchas gracias…

  4. Hola Mario, disculpa pero no entendemos bien tu comentario. Si te refieres a ver el código, puedes hacerlo dándote de alta como usuario Premium (las suscripciones y accesos premium nos permiten pagar a nuestros autores y seguir publicando, una buena parte en abierto, y sin ninguna publicidad).
    Gracias

  5. He empezado a Testear este ejemplo.
    Aunque se un ejemplo hay muchos errores sin controlar:

    – Si pongo datos erróneos de conexión a la Base da Datos, no sale ningún error…
    – El campo de Fecha es un campo de texto en vez de un campo tipo fecha.
    – Si se introduce una fecha mal, la acepta y pone “Nuevo Registro Insertado” y si se verifica la Base de Datos no llega introducir el datos. (La fecha queda Truncada)
    – Si se detiene los servicios mysql (Simulando un corte en el servidor) … la aplicación sigue poniendo “Nuevo Registro Insertado” …
    – Si se pone un carácter (símbolo especial / reservado) se produce un error “Error SQL syntax” .. (Inyección SQL, por falta de control de entrada de los caracteres.)
    – No he revisado el código aun..
    ¿Pueden revisar el ejemplo y aplicar las correcciones?
    Gracias.

    1. Corrijo:
      – Si se pone un carácter (símbolo especial / reservado) se produce un error “Error SQL syntax” (En la consola de android studio) .. (Inyección SQL, por falta de control de entrada de los caracteres.)
      Pero pone igualmente que se ha insertado el registro …

    2. Hola Daniel,

      lo primero agradecerte el testeo que estás haciendo y comentárnoslo.
      Como dices, esto es un ejemplo simplificado para mostrar unas funcionalidades concretas (como sucede en casi todos los proyectos publicados) y no pretende ser una aplicación final, donde el control de errores y de todo tipo de situaciones que puedan darse, es muy importante.
      Igual podríamos decir en general de otros aspectos de estos proyectos ejemplo, como el diseño de la interfaz de usuario, que suele ser muy ‘esquemático’ y que se plantearía de una forma más elaborada si estuviera destinado a una aplicación que va ser distribuida y utilizada en real.
      Dicho ésto, intentaremos revisar lo que nos dices y si se genera una nueva versión del proyecto lo publicaríamos aquí mismo.

      Gracias de nuevo por tu interés. Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *