Mysql Android

18
Nuevo usuario Inicio : Descargas : Trucos VB.Net, PHP, Delphi : Manuales : Código Fuente Principal · Inicio · Buscar · Contactar · Descargas · Enciclopedia · Estadísticas · Foros · Manuales, Artículos · Nuestra historia · Quiénes somos · Recomiéndanos · Temas · Top 10 · Trucos Delphi, PHP, Java, Visual Studio · Tu cuenta Descargas Últimas Descargas · AjpdSoft Obtener datos EAN13 en Delphi 6 · AjpdSoft Gestión VMware ESXi y vCenter · AjpdSoft XSD a XML · AjpdSoft Números Aleatorios VB.NET · AjpdSoft Gestión Seguidores Twitter C# · AjpdSoft Información PC WMI en VB.Net · AjpdSoft Acceso PostgreSQL con Lazarus x64 · Ejemplo acceso nativo a SQLite con ADO.Net en C# .Net · AjpdSoft Acceso MySQL Android · AjpdSoft Acceso SQLite C# ADO.NET · AjpdSoft Acceso MySQL con ADO.NET en C# · AjpdSoft Gestión Integral código fuente Delphi · AjpdSoft Indexar Texto PDF C# iTextSharp · AjpdSoft Capturar Pantalla C# · AjpdSoft Gestión de Transportes Ficheros instalación manual · AjpdSoft Registro de OCX y DLL Código Fuente Delphi · AjpdSoft Generador de códigos de barras EAN8 y EAN13 · Borland Database Desktop 7.0 · AjpdSoft Conversor Hexadecimal, Decimal, Texto - Código Fuente Delphi · AjpdSoft Aviso cambio IP pública · AjpdSoft Administración Bases de Datos Código Fuente Delphi · AjpdSoft Generador y Lector códigos QR VB.Net · AjpdSoft Inventario PCs · AjpdSoft Facturación Código Fuente Delphi · AjpdSoft Conexión BD Visual Basic .Net · AjpdSoft Agenda Telefónica Android · Borland Database Engine BDE · AjpdSoft Inventario PCs Términos enciclopedias Últimos · Out-File Enc.: Comandos PowerShell · Write-EventLog Enc.: Comandos PowerShell · Get-EventLog Enc.: Comandos PowerShell · Get-FileHash Enc.: Comandos PowerShell · Compare-Object Enc.: Comandos PowerShell · StringReplace Enc.: Funciones Delphi · SMS Enc.: Informática · GSM Enc.: Informática · VLAN Enc.: Informática · LUN Enc.: Informática · ERP Enc.: Informática · ADSL Enc.: Informática · VDSL Enc.: Informática · DATE_FORMAT(fecha, formato) Enc.: Funciones MySQL · SOAP Enc.: Informática Lo más visitado · URL Enc.: Informática · Attrib Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS) · At Enc.: Comandos Windows Consejos Seguir a Seguir a @ajpdsoft @ajpdsoft 3,313 seguidores Eclipse: Acceso a MySQL desde Android con Eclipse, Java y JDBC Explicamos en este tutorial cómo acceder desde un dispositivo con sistema Android a un servidor de base de datos MySQL Server . Para ello usaremos el IDE de desarrollo Eclipse, Java y JDBC para la conexión. Realizaremos una conexión directa sin necesidad de usar un servidor web con PHP, ni JSON ni nada por el estilo. Además, este método servirá para cualquier base de datos que admita JDBC. Explicamos cómo crear una aplicación Android desde cero, paso a paso. Introducción, antecedentes, Android y bases de datos. Requisitos para desarrollar aplicación para dispositivos Android con Eclipse. Entorno de desarrollo de aplicaciones para Android con Eclipse. Equipo o servidor con MySQL Server . Añadir proyecto Android a Eclipse para aplicación acceso MySQL, crear activity principal y menú. Añadir segundo activity para introducción de los datos de conexión con servidor MySQL. Descargar y añadir JDBC a proyecto Eclipse para acceso a MySQL desde Android. Ejemplo acceso a BD MySQL desde Android con JDBC y Eclipse. Código Java aplicación AjpdSoft Acceso MySQL Android. Aplicación Android AjpdSoft Acceso MySQL en funcionamiento. Publicar aplicación Android en Google Play. Artículos relacionados. Créditos. Introducción, antecedentes, Android y bases de datos La conexión directa a una base de datos MySQL, PostgreSQL, Oracle, SQL Server , Firebird, etc. desde un dispositivo con sistema Android (móvil, tablet) es perfectamente posible. En muchos sitios web hemos leído que Android sólo admite acceso a bases de datos SQLite y esto es un error. Lo que sí es cierto es que el propio sistema Android, como tal, sólo admite trabajar de forma independiente (sin un servidor de base de datos externo) con base de datos SQLite. Lo que quiere decir que en nuestro móvil o tablet con Android no podremos instalar un servidor de MySQL, Oracle, PostgreSQL, etc. Por lo tanto lo que explicaremos en este tutorial será cómo acceder y trabajar con una base de datos externa al dispositivo Android usando la conexión de red o de Internet. No necesitaremos hacer ningún tipo de instalación adicional en nuestro dispositivo Android, más allá de nuestra propia aplicación, no nesitaremos realizar tunneling, ni usar PHP, ni JSON ni nada por el estilo. El único requisito es que la aplicación desarrollada en Android requerirá de permiso para acceso a Internet, nada más. Y, por supuesto, necesitaremos de un servidor de bases de datos externo al que accederemos desde Android. Repetimos para aclarar las dudas al respecto: Android sólo admite de forma local trabajar con bases de datos SQLite, la base de datos residirá en el dispositivo móvil con Android. Pero Android, puesto que cuenta con compilador Java y todo lo que ello conlleva, admite perfectamente trabajar con cualquier motor de base de datos que permita acceso mediante JDBC. En este último caso la base de datos, obviamente, residirá en un servidor externo con Windows o Linux como sistema operativo y el dispositivo accederá a dicho servidor mediante la conexión de red o Internet. En el siguiente tutorial explicamos cómo trabajar con bases de datos SQLite desde Android: Desarrollar aplicación Android con acceso a base de datos SQLite con Eclipse Por supuesto, cada desarrollador estimará qué método usar para conectar una aplicación Android con un motor de base de datos externo, puede estimar usar PHP y JSON, nosotros no decimos que no se haga así, sólo decimos que puede realizarse una conexión directa desde Android a MySQL usando JDBC y Java como explicaremos a continuación. Requisitos para desarrollar aplicación para dispositivos Android con Eclipse Entorno de desarrollo de aplicaciones para Android con Eclipse En el siguiente enlace mostramos un tutorial donde explicamos paso a paso cómo instalar Eclipse y cómo preparar el entorno para desarrollar aplicaciones para dispositivos con Android en Linux: Mi primera aplicación Android con Eclipse en Linux, instalar Eclipse Ubuntu. Para Microsoft Windows 8: Montar entorno de programación para Android con Eclipse en Windows 8. Equipo o servidor con MySQL Server Como ya hemos comentado necesitaremos disponer de un servidor de MySQL, en los siguientes tutoriales explicamos cómo instalarlo sobre Windows y Linux: Cómo instalar MySQL Server en Windows XP. Servidor web con Ubuntu Server 12 y LAMP Server Apache PHP MySQL. Instalar Linux Ubuntu Server 11 x64, Apache, MySQL, PostgreSQL, Tomcat, Webmin. Cómo instalar MySQL Server en Linux y permitir conexiones remotas. Instalar y configurar MySQL Server 5 en Linux Suse 10. Cómo instalar MySQL Server 6.0 Alpha en Windows XP. Añadir proyecto Android a Eclipse para aplicación acceso MySQL, crear activity principal y menú En primer lugar, si aún no lo tenemos creado, crearemos un nuevo proyecto en Eclipse, para ello lo abriremos y pulsaremos en el menú "File" - "New" - "Project": Enlaces Relacionados · Lector códigos barras Android · Aplicación Android AppInventor · Android acceso SQLite · Aplicación Android con Eclipse · Aplicación móvil J2ME NetBeans · Aplicación con Java y Eclipse · Lector Códigos Barrras Android · Acceso a MySQL JDBC Android · Entorno Eclipse Windows 8 · Aplicación Android Studio · Más Acerca de Android · Noticias/artículos de ajpdsoft Noticia/artículo más leída sobre Android: Desarrollar aplicación Android con acceso a base de datos SQLite con Eclipse Votos del Artículo Puntuación Promedio: 1.33 votos: 262 Por favor tómate un segundo y vota por este artículo: ¡Grabar mi Voto! Opciones Enviar a un Amigo 3020 Me gusta Me gusta Compartir Compartir Publicidad en Google Anuncie su negocio en Google con AdWords. ¡Reciba USD50 de regalo! http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

description

Mysql-Android

Transcript of Mysql Android

Page 1: Mysql Android

Nuevo usuario Inicio : Descargas : Trucos VB.Net, PHP, Delphi : Manuales : Código Fuente

Principal

· Inicio

· Buscar

· Contactar

· Descargas

· Enciclopedia

· Estadísticas

· Foros

· Manuales, Artículos

· Nuestra historia

· Quiénes somos

· Recomiéndanos

· Temas

· Top 10

· Trucos Delphi, PHP, Java,Visual Studio

· Tu cuenta

Descargas

Últimas Descargas· AjpdSoft Obtener datosEAN13 en Delphi 6

· AjpdSoft Gestión VMwareESXi y vCenter

· AjpdSoft XSD a XML

· AjpdSoft NúmerosAleatorios VB.NET

· AjpdSoft GestiónSeguidores Twitter C#

· AjpdSoft Información PCWMI en VB.Net

· AjpdSoft AccesoPostgreSQL con Lazarusx64

· Ejemplo acceso nativo aSQLite con ADO.Net en C#.Net

· AjpdSoft Acceso MySQLAndroid

· AjpdSoft Acceso SQLiteC# ADO.NET

· AjpdSoft Acceso MySQLcon ADO.NET en C#

· AjpdSoft Gestión Integralcódigo fuente Delphi

· AjpdSoft Indexar TextoPDF C# iTextSharp

· AjpdSoft CapturarPantalla C#

· AjpdSoft Gestión deTransportes Ficherosinstalación manual

Lo más descargado· AjpdSoft Registro de OCXy DLL Código Fuente Delphi

· AjpdSoft Generador decódigos de barras EAN8 yEAN13

· Borland DatabaseDesktop 7.0

· AjpdSoft ConversorHexadecimal, Decimal,Texto - Código FuenteDelphi

· AjpdSoft Aviso cambio IPpública

· AjpdSoft AdministraciónBases de Datos CódigoFuente Delphi

· AjpdSoft Generador yLector códigos QR VB.Net

· AjpdSoft Inventario PCs

· AjpdSoft FacturaciónCódigo Fuente Delphi

· AjpdSoft Conexión BDVisual Basic .Net

· AjpdSoft AgendaTelefónica Android

· Borland Database EngineBDE

· AjpdSoft Inventario PCs

Términos enciclopedias

Últimos· Out-FileEnc.: ComandosPowerShell

· Write-EventLogEnc.: ComandosPowerShell

· Get-EventLogEnc.: ComandosPowerShell

· Get-FileHashEnc.: ComandosPowerShell

· Compare-ObjectEnc.: ComandosPowerShell

· StringReplaceEnc.: Funciones Delphi

· SMSEnc.: Informática

· GSMEnc.: Informática

· VLANEnc.: Informática

· LUNEnc.: Informática

· ERPEnc.: Informática

· ADSLEnc.: Informática

· VDSLEnc.: Informática

· DATE_FORMAT(fecha,formato)Enc.: Funciones MySQL

· SOAPEnc.: Informática

Lo más visitado

· URLEnc.: Informática

· AttribEnc.: Comandos WindowsXP/Windows 2000/2003(consola MS-DOS)

· AtEnc.: Comandos Windows

Consejos

Seguir a Seguir a @ajpdsoft@ajpdsoft 3,313 seguidores

Eclipse: Acceso a MySQL desde Android con Eclipse, Java y JDBC

Explicamos en este tutorial cómo acceder desde un dispositivo con sistema Android a un servidor de base de datos MySQL Server. Para ello usaremos el IDE de desarrollo Eclipse, Java yJDBC para la conexión. Realizaremos una conexión directa sin necesidad de usar un servidor web con PHP, ni JSON ni nada por el estilo. Además, este método servirá para cualquier basede datos que admita JDBC. Explicamos cómo crear una aplicación Android desde cero, paso a paso.

Introducción, antecedentes, Android y bases de datos.Requisitos para desarrollar aplicación para dispositivos Android con Eclipse.

Entorno de desarrollo de aplicaciones para Android con Eclipse.Equipo o servidor con MySQL Server.

Añadir proyecto Android a Eclipse para aplicación acceso MySQL, crear activity principal y menú.Añadir segundo activity para introducción de los datos de conexión con servidor MySQL.Descargar y añadir JDBC a proyecto Eclipse para acceso a MySQL desde Android.Ejemplo acceso a BD MySQL desde Android con JDBC y Eclipse.Código Java aplicación AjpdSoft Acceso MySQL Android.Aplicación Android AjpdSoft Acceso MySQL en funcionamiento.Publicar aplicación Android en Google Play.Artículos relacionados.Créditos.

Introducción, antecedentes, Android y bases de datosLa conexión directa a una base de datos MySQL, PostgreSQL, Oracle, SQL Server, Firebird, etc. desde un dispositivo con sistema Android (móvil, tablet) es perfectamente posible. Enmuchos sitios web hemos leído que Android sólo admite acceso a bases de datos SQLite y esto es un error. Lo que sí es cierto es que el propio sistema Android, como tal, sólo admitetrabajar de forma independiente (sin un servidor de base de datos externo) con base de datos SQLite. Lo que quiere decir que en nuestro móvil o tablet con Android no podremos instalarun servidor de MySQL, Oracle, PostgreSQL, etc.

Por lo tanto lo que explicaremos en este tutorial será cómo acceder y trabajar con una base de datos externa al dispositivo Android usando la conexión de red o de Internet. Nonecesitaremos hacer ningún tipo de instalación adicional en nuestro dispositivo Android, más allá de nuestra propia aplicación, no nesitaremos realizar tunneling, ni usar PHP, ni JSON ninada por el estilo. El único requisito es que la aplicación desarrollada en Android requerirá de permiso para acceso a Internet, nada más. Y, por supuesto, necesitaremos de un servidor debases de datos externo al que accederemos desde Android.

Repetimos para aclarar las dudas al respecto: Android sólo admite de forma local trabajar con bases de datos SQLite, la base de datos residirá en el dispositivo móvil con Android. PeroAndroid, puesto que cuenta con compilador Java y todo lo que ello conlleva, admite perfectamente trabajar con cualquier motor de base de datos que permita acceso mediante JDBC. Eneste último caso la base de datos, obviamente, residirá en un servidor externo con Windows o Linux como sistema operativo y el dispositivo accederá a dicho servidor mediante laconexión de red o Internet.

En el siguiente tutorial explicamos cómo trabajar con bases de datos SQLite desde Android:

Desarrollar aplicación Android con acceso a base de datos SQLite con Eclipse

Por supuesto, cada desarrollador estimará qué método usar para conectar una aplicación Android con un motor de base de datos externo, puede estimar usar PHP y JSON, nosotros nodecimos que no se haga así, sólo decimos que puede realizarse una conexión directa desde Android a MySQL usando JDBC y Java como explicaremos a continuación.

Requisitos para desarrollar aplicación para dispositivos Android con Eclipse

Entorno de desarrollo de aplicaciones para Android con Eclipse

En el siguiente enlace mostramos un tutorial donde explicamos paso a paso cómo instalar Eclipse y cómo preparar el entorno para desarrollar aplicaciones para dispositivos con Android enLinux:

Mi primera aplicación Android con Eclipse en Linux, instalar Eclipse Ubuntu.

Para Microsoft Windows 8:

Montar entorno de programación para Android con Eclipse en Windows 8.

Equipo o servidor con MySQL Server

Como ya hemos comentado necesitaremos disponer de un servidor de MySQL, en los siguientes tutoriales explicamos cómo instalarlo sobre Windows y Linux:

Cómo instalar MySQL Server en Windows XP.Servidor web con Ubuntu Server 12 y LAMP Server Apache PHP MySQL.Instalar Linux Ubuntu Server 11 x64, Apache, MySQL, PostgreSQL, Tomcat, Webmin.Cómo instalar MySQL Server en Linux y permitir conexiones remotas.Instalar y configurar MySQL Server 5 en Linux Suse 10.Cómo instalar MySQL Server 6.0 Alpha en Windows XP.

Añadir proyecto Android a Eclipse para aplicación acceso MySQL, crear activityprincipal y menúEn primer lugar, si aún no lo tenemos creado, crearemos un nuevo proyecto en Eclipse, para ello lo abriremos y pulsaremos en el menú "File" - "New" - "Project":

Enlaces Relacionados

· Lector códigos barrasAndroid

· Aplicación AndroidAppInventor

· Android acceso SQLite

· Aplicación Android conEclipse

· Aplicación móvil J2MENetBeans

· Aplicación con Java yEclipse

· Lector Códigos BarrrasAndroid

· Acceso a MySQL JDBCAndroid

· Entorno Eclipse Windows8

· Aplicación Android Studio

· Más Acerca de Android

· Noticias/artículos deajpdsoft

Noticia/artículo másleída sobre Android:Desarrollar aplicación

Android con acceso a basede datos SQLite con Eclipse

Votos del Artículo

Puntuación Promedio: 1.33votos: 262

Por favor tómate unsegundo y vota por este

artículo:

¡Grabar mi Voto!

Opciones

Enviar a un Amigo

3020Me gustaMe gusta CompartirCompartir

Publicidad en GoogleAnuncie su negocio en Google con AdWords. ¡Reciba USD50 de regalo!

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 2: Mysql Android

Lenguajes

Selecciona Idioma de laInterfaz:

Spanish

Webs recomendadas

Orasite.com

Coloca tu web aquí

Language english

English

Desplegaremos "Android" y seleccionaremos "Android Application Project":

Introduciremos los datos para el nuevo proyecto Eclipse para dispositivos Android:

Application Name: nombre de la aplicación, no recomendamos nombres muy largos pues de lo contrario no cabrán en los títulos y demás donde aparezcan. En nuestro ejemplola llamaremos "AccesoMySQL".Project Name: nombre del nuevo proyecto Eclipse Android, por ejemplo "AjpdSoftMySQL".Package Name: nombre del paquete, por ejemplo "com.example.ajpdsoftmysql".Buil SDK: API level con el que se compilará la aplicación, por ejemplo "Android 4.1 (API 16).Minimun Required SDK: este campo es importante, deberemos indicar el API level mínimo requerido, a mayor API Level menor número de dispositivos Android soportaránnuestra aplicación. Por lo tanto deberemos indicar el API level más pequeño posible, según los procedimientos que usemos y los imports requeriremos uno u otro. En nuestro casoel API Level mínimo será 5 (API 5: Android 2.0 (Eclair).Create custom launcher icon: si queremos que el asistente nos permita crear un icono para nuestra aplicación marcaremos este check.Create Project in Workspace: maraceremos esta opción para crear el nuevo proyecto Android en el espacio de trabajo del usuario por defecto.

Tras introducir los datos para el nuevo proyecto Eclipse para dispositivos Android pulsaremos "Next":

Si hemos seleccionado la opción de crear un icono para la aplicación, el asistente nos mostrará la ventana para crear el icono personalizado, podremos cambiar el icono, cambiar color defondo y otras opciones:

Marcaremos "Create Activity" para crear una activity (ventana) principal de la aplicación, seleccionaremos el tipo de activity que crearemos, en nuestro caso "BlankActivity":

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 3: Mysql Android

Introduciremos los datos para la nueva activity:

Activity Name: nombre del activity (ventana), por ejemplo "AjdSoftMySQL".Layout Name: nombre del fichero xml que contendrá los componentes visuales de la activity, por ejemplo "activity_ajpd_soft_my_sql".Navitagion Type: podremos elegir aquí el tipo de navegación para la nueva actividad, las opciones: Tabs, Tabs + Swipe, Swipe Views + Title Strip y Dropdown. Estos tipos denavegación requerirán API Level iguales o superiores a la 14.Title: título para la activity, por ejemplo "Acceso MySQL".

Para más información sobre los activity de Android podéis vistar este tutorial:

Añadir ventanas a aplicación Android con Eclipse y Java, trabajar con Activity.

Tras introducir los datos para el activity pulsaremos "Finish" para crear el proyecto:

El asistente para añadir un nuevo proyecto Eclipse para dispositivos Android creará todos los ficheros necesarios para el proyecto, a continuación indicamos algunos de los másimportantes:

/src/AjpdSoftMySQL.java: código java de la activity principal del proyecto. En este fichero colocaremos todo el código java de nuestra aplicación Android, al menos todo el quetenga que ver con su activity correspondiente./bin/AndroidManifest.xml: fichero de configuración principal de la aplicación donde se indicarán, por ejemplo, todas las activity de la aplicación./res/drawable-hdpi, /res/drawable-ldpi, /res/drawable-mdpi, /res/drawable-xhdpi: carpetas del proyecto donde se guardarán los ficheros de imágenes (iconos y demás) para lasdiferentes resoluciones./res/layout/activity_ajpd_soft_my_sql.xml: carpeta y fichero para el layout, donde se indicarán los componentes gráficos del activity relacionado, en este ficheroindicaremos todo lo que el usuario verá en la aplicación Android de su móvil./res/menu/activity_ajpd_soft_my_sql.xml: carpeta y fichero con los datos necesarios para mostrar el menú de nuestra aplicación, lo usaremos para mostrar el segundoactivity que crearemos posteriormente para indicar los datos de conexión con el servidor MySQL./res/values/strings.xml: en este fichero indicaremos todas las cadenas de texto que se mostrarán al usuario en los menús, botones, etiquetas, mensajes, etc.

El asistente nos dejará la pestaña del layout abierta, para edición en modo gráfico, añadiremos al layout del activity principal de la aplicación los siguientes componentes:

De la paleta "Form Widgets" añadiremos un "Spinner", en este desplegable mostraremos los catálogos (bases de datos) del servidor de MySQL al que nos conectemos.De la paleta "Form Widgets" añadiremos un Button, este botón será el que pulse el usuario para obtener los catálogos del servidor MySQL.De la paleta "Text Fields" añadiremos un "EditText" multilínea (Multiline Text), en este campo el usuario podrá introducir la consulta SQL a ejecutar contra el servidor MySQL.De la paleta "Form Widgets" añadiremos un "CheckBox", en este check el usuario marcará si es una consulta de selección (SELECT, DESC, SHOW) o es una consulta demodificación de datos (INSERT, UPDATE, DROP,CREATE, ALTER).De la paleta "Form Widgets" añadiremos un Button, este botón será el que pulse el usuario para ejecutar la consulta SQL.De la paleta "Text Fields" añadiremos un "EditText" multilínea (Multiline Text), en este campo la aplicación devolverá el resultado de la ejecución de laconsulta SQL.De la paleta "Text Fields" añadiremos un "TextView" en el que mostraremos un texto de aviso al usuario para que, si la consulta SQL es grande, use la cláusula LIMIT para limitarlos registros a mostrar y que la aplicación no se ralentice en exceso.

Todos estos datos visuales se guardarán en el fichero /res/layout/activity_ajpd_soft_my_sql.xml, en nuestro caso tendrá este contenido:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 4: Mysql Android

xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent" >

android:id="@+id/lsCatalogos"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_toLeftOf="@+id/btCatalogos" />

android:id="@+id/txtSQL"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/lsCatalogos"android:ems="10"android:hint="@string/text_SQL_Ejecutar"android:inputType="textMultiLine" >

android:id="@+id/txtResultadoSQL"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/btEjecutar"android:ems="10"android:inputType="textMultiLine|none" />

android:id="@+id/btCatalogos"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/lsCatalogos"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:text="@string/text_catalogos" />

android:id="@+id/btEjecutar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@+id/txtSQL"android:text="@string/text_ejecutar" />

android:id="@+id/opConsultaModificacion"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/btEjecutar"android:layout_alignBottom="@+id/btEjecutar"android:layout_alignParentLeft="true"android:text="@string/text_consulta_seleccion" />

android:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/txtResultadoSQL"android:text="@string/text_aviso_SQL" />

El contenido del fichero donde se guardarán todas las cadenas de texto que usaremos en la aplicación "res/values/strings.xml":

Acceso MySQLConfiguraciónAcceso MySQLConsulta SQL a ejecutarEjecutarResultado SQLAcerca de …ConfiguraciónIP/Nombre red servidorPuertoUsuarioContraseñaBase de datosAcerca deGuardar configuraciónCatálogo/BDProbar conexiónCatálogosSQL de modificaciónUtiliza LIMIT en las consultas SQL de selección,si devuelven muchos registros podrían provocar que laaplicación se ralentice en exceso o incluso deje de funcionar.Por ejemplo: nselect * from factura limit 0,10 n(mostrará los 10primeros registros)"Introduzca consulta SQL

El contenido del fichero que mostrará el menú en el activity "/res/layout/menu/activity_ajpd_soft_my_sql.xml":

android:title="@string/text_menu_configuracion"android:orderInCategory="100"android:showAsAction="never"/>

android:title="@string/text_acercade">

Podremos compilar la aplicación para probarla y ver cómo quedan los componentes visuales, de momento ningún botón funcionará pues aún no lo hemos programado, pero nos servirápara comprobar que todo es correcto. Para ello pulsaremos en "Run" - "Run":

Seleccionaremos "Android Application" y pulsaremos "OK":

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 5: Mysql Android

Si todo es correcto se iniciará el emulador de dispositivos Android y se ejecutará la aplicación:

Incluso podremos pulsar en "MENU" para comprobar que el menú aparece correctamente en la parte inferior:

El código XML del fichero "/bin/AndroidManifest.xml":

Cabe destacar "uses-permission android:name="android.permission.INTERNET"" que será el permiso necesario para que la aplicación funcione, pues será necearia la conexión a Internet(o a una red wifi) para acceder al servidor de MySQL Server.

Añadir segundo activity para introducción de los datos de conexión con servidorMySQLNuestra aplicación de ejemplo contará con dos activity, por un lado el anteriormente creado que será el principal, donde el usuario introducirá la consulta SQL a ejecutar y donde semostrará el resultado. Por otro lado, nuestra aplicación requerirá de un segundo activity donde solicitaremos al usuario los datos de acceso al servidor MySQL al que nos conectaremos (IP,

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 6: Mysql Android

puerto, base de datos, usuario, contraseña).

Para añadir un segundo activity a nuestra aplicación para dispositivos Android desde Eclipse, pulsaremos con el botón derecho del ratón sobre el proyecto y seleccionaremos "New" -"Other":

Desplegaremos "Android" y seleccionaremos "Android Activity":

Seleccionaremos "BlankActivity" y pulsaremos "Next":

Introduciremos los datos para el nuevo Activity:

Activity Name: nombre del activity (ventana), por ejemplo "Activity_Configuracion".Layout Name: nombre del fichero xml que contendrá los componentes visuales de la activity, por ejemplo "activity_activity_configuracion".Navitagion Type: podremos elegir aquí el tipo de navegación para la nueva actividad, las opciones: Tabs, Tabs + Swipe, Swipe Views + Title Strip y Dropdown. Estos tipos denavegación requerirán API Level iguales o superiores a la 14. Seleccionaremos "None".Title: título para la activity, por ejemplo "Configuración".

Pulsaremos "Finish":

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 7: Mysql Android

El asistente nos dejará la pestaña del layout abierta, para edición en modo gráfico, añadiremos al layout del activity secundario (el que mostrará los datos de conexión al servidor MySQL)los siguientes componentes:

De la paleta "Text Fields" añadiremos un "TextView" en el que mostraremos un texto "IP/Nombre red servidor".De la paleta "Text Fields" añadiremos un "EditText", en este campo el usuario introducirá la IP/DNS del servidor de MySQL al que quiera conectarse.De la paleta "Text Fields" añadiremos un "TextView" en el que mostraremos un texto "Puerto".De la paleta "Text Fields" añadiremos un "EditText", en este campo el usuario introducirá el puerto del servidor de MySQL al que quiera conectarse.De la paleta "Text Fields" añadiremos un "TextView" en el que mostraremos un texto "Usuario".De la paleta "Text Fields" añadiremos un "EditText", en este campo el usuario introducirá el usuario del servidor de MySQL al que quiera conectarse.De la paleta "Text Fields" añadiremos un "TextView" en el que mostraremos un texto "Contraseña".De la paleta "Text Fields" añadiremos un "EditText", en este campo el usuario introducirá la contraseña del servidor de MySQL al que quiera conectarse.De la paleta "Form Widgets" añadiremos un Button, este botón será el que pulse el usuario para ejecutar la consulta SQL.

Todos estos datos visuales se guardarán en el fichero /res/layout/activity_activity_configuracion.xml, en nuestro caso tendrá este contenido:

xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent" >

android:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:text="@string/text_IP" />

android:id="@+id/txtIP"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/textView1"android:ems="10"android:inputType="text" >

android:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/txtIP"android:text="@string/text_Puerto" />

android:id="@+id/txtPuerto"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/textView2"android:inputType="number"android:ems="10" />

android:id="@+id/textView4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/txtPuerto"android:text="@string/text_Usuario" />

android:id="@+id/txtUsuario"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/textView4"android:inputType="text"android:ems="10" />

android:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/txtUsuario"android:text="@string/text_Contraseña" />

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 8: Mysql Android

android:id="@+id/txtContrasena"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_below="@+id/textView3"android:inputType="textPassword"android:ems="10" />

android:id="@+id/btProbarConexion"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/txtContrasena"android:layout_centerHorizontal="true"android:layout_marginTop="16dp"android:text="@string/text_probar_conexion" />

Este activity también incorporará un menú, el fichero xml del menú "/res/layout/menu/activity_activity_config.xml":

android:title="@string/text_menu_guardar_configuracion"android:orderInCategory="100"/>android:title="@string/text_acercade">

El segundo activity en ejecución:

Nota: más adelante explicaremos y mostraremos todo el código Java para hacer funcionar todas las opciones visuales de la aplicación Android con acceso a MySQL.

Descargar y añadir JDBC a proyecto Eclipse para acceso a MySQL desde AndroidEn primer lugar necesitaremos el JDBC para el motor de base de datos al que queramos acceder desde Android, en nuestro caso, como ejemplo, accederemos a un servidor de MySQLServer instalado en un equipo Linux. Para descargar el JDBC accederemos a la web oficial del motor de base de datos y descargaremos el fichero correspondiente al JDBC, para MySQLaccederemos a la URL:

http://dev.mysql.com/downloads/connector/j

A la fecha de este tutorial descargamos la versión Connector/J 5.1.24, podremos descargar el .tar o el .zip, ambos son válidos para cualquier sistema operativo. Una vez descargado elfichero mysql-connector-java-5.1.24.zip lo descomprimiremos pulsando con el botón derecho del ratón sobre él y seleccionado "Extraer aquí":

Dentro de este fichero comprimido habrá varios (.jar, documentación, código fuente), el importante es el mysql-connector-java-5.1.24-bin.jar, copiaremos este fichero (pulsando sobreél con el botón derecho):

Desde Eclipse, exploraremos nuestro proyecto Android, pulsaremos con el botón derecho sobre la carpeta "libs" y pulsaremos en "Paste" (para pegar el fichero .jar del conector de

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 9: Mysql Android

MySQL):

Ejemplo acceso a BD MySQL desde Android con JDBC y EclipseUna vez agregado el conector .jar a nuestro proyecto (como hemos indicado aquí) ya podremos usar todas las funciones y prodedimientos para conectar con el motor de base de datosMySQL desde nuestra aplicación Android con Eclipse. Para ello será tan sencillo como agregar en los imports de nuestro fichero .java lo siguiente:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

Añadiremos la siguiente variable de tipo "Connection", que usaremos para conectarnos sólo una vez durante el proceso de ejecución de una consulta SQL en MySQL:

Connection conexionMySQL;

Añadiremos un procedimiento para conectarnos al servidor MySQL, así podremos usarlo cada vez que lo necesitemos. Dicho procedimiento necesitará usuario, contraseña, IP o DNS,puerto y catálogo del servidor de MySQL al que nos conectaremos, si hay algún error lo capturará y lo mostrará en una notificación Android:

public void conectarBDMySQL (String usuario, String contrasena, String ip, String puerto, String catalogo) { if (conexionMySQL == null) { String urlConexionMySQL = ""; if (catalogo != "") urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto + "/" + catalogo; else urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto; if (usuario != "" & contrasena != "" & ip != "" & puerto != "") { try {

Class.forName("com.mysql.jdbc.Driver"); conexionMySQL = DriverManager.getConnection(urlConexionMySQL, usuario, contrasena);

} catch (ClassNotFoundException e) { Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } catch (SQLException e) {

Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} } } }

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 10: Mysql Android

Como ejemplo nos conectaremos al servidor MySQL desde nuestra aplicación Android, ejecutaremos una consulta SQL que devuelve registros y mostraremos el resultado en un cuadro detexto:

buttonEjecutar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { try

{ SSring QSLEjecutar = "select * from facturas limit 10"; conectarBDMySQL("root", "contraseña", "ajpdsoft.com", "3306", "bdfacturas"); Statement st = conexionMySQL.createStatement(); ResultSet rs = st.executeQuery(SQLEjecutar);

String resultadoSQL = ""; Integer numColumnas = 0;

//número de columnas (campos) de la consula SQL numColumnas = rs.getMetaData().getColumnCount();

//mostramos el resultado while (rs.next()) { for (int i = 1; i <= numColumnas; i++) { if (rs.getObject(i) != null) { if (resultadoSQL != "") if (i < numColumnas) resultadoSQL = resultadoSQL + rs.getObject(i).toString() + ";"; else resultadoSQL = resultadoSQL + rs.getObject(i).toString(); else if (i < numColumnas) resultadoSQL = rs.getObject(i).toString() + ";"; else resultadoSQL = rs.getObject(i).toString(); } else { if (resultadoSQL != "") resultadoSQL = resultadoSQL + "null;"; else resultadoSQL = "null;"; } } resultadoSQL = resultadoSQL + "n"; } textResultadoSQL.setText(resultadoSQL); st.close(); rs.close();

} catch (Exception e) { Toast.makeText(getApplicationContext(),

"Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} } }); }

Código Java aplicación AjpdSoft Acceso MySQL AndroidCódigo Java completo del fichero "/src/AjpdSoftMySQL.java", este fichero contendrá el código Java del activity principal de la aplicación, desde donde el usuario podrá escribir lasconsultas SQL que desee y ejecutarlas. En el código incluimos todo lo necesario para conectar con el servidor MySQL especificado, guardar configuración, cargar configuración, obtenerlista de catálogos de MySQL (bases de datos), consulta de selección, consulta de modificación, obtener datos de consultas de selección, mostrar menú, etc.:

package com.example.ajpdsoftmysql;

import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.CheckBox;import android.widget.Spinner;import android.widget.TextView;import android.widget.Toast;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

public class AjpdSoftMySQL extends Activity {

String ipServidorMySQL, contrasenaMySQL, usuarioMySQL, puertoMySQL;

static String SQLEjecutar;String catalogoMySQL;TextView textSQL, textResultadoSQL;private Button buttonEjecutar; private Button buttonCatalogos; private Spinner spnCatalogos;private CheckBox chbSQLModificacion;static Connection conexionMySQL;

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 11: Mysql Android

String[] listaCatalogos;

@Override public void onCreate(Bundle savedInstanceState)

{ super.onCreate(savedInstanceState); setContentView(R.layout.activity_ajpd_soft_my_sql); //Asignamos cada objeto visual creado en el layout xml a su //respectiva variable textSQL = (TextView)findViewById(R.id.txtSQL); spnCatalogos = (Spinner)findViewById(R.id.lsCatalogos); textResultadoSQL = (TextView)findViewById(R.id.txtResultadoSQL); buttonEjecutar = (Button) findViewById(R.id.btEjecutar); buttonCatalogos = (Button) findViewById(R.id.btCatalogos); chbSQLModificacion = (CheckBox) findViewById(R.id.opConsultaModificacion); //Botón para mostrar lista de catálogos (bases de datos) de MySQL buttonCatalogos.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View v) {

obtenerListaCatalogos(); try {

ArrayAdapter adaptador = new ArrayAdapter(AjpdSoftMySQL.this,

android.R.layout.simple_list_item_1, listaCatalogos);

adaptador.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

spnCatalogos.setAdapter(adaptador); }

catch (Exception e) { Toast.makeText(getApplicationContext(),

"Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} }

}); //Botón para ejecutar consulta SQL en MySQL buttonEjecutar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {

cargarConfiguracion(); SQLEjecutar = textSQL.getText().toString(); catalogoMySQL = spnCatalogos.getSelectedItem().toString(); conectarBDMySQL(usuarioMySQL, contrasenaMySQL, ipServidorMySQL, puertoMySQL, catalogoMySQL); String resultadoSQL = ejecutarConsultaSQL(chbSQLModificacion.isChecked(),

getApplication()); textResultadoSQL.setText(resultadoSQL); } }); }

//crear el menú en el activity @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_ajpd_soft_my_sql, menu); return true; } //código para cada opción de menú @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_configuracion: menuConfiguracion(); return true; case R.id.menu_acerca_de: visitarURL("http://www.ajpdsoft.com"); return true; default: return super.onOptionsItemSelected(item); } } //abrir ventana-activity Configuración public void menuConfiguracion() {

Intent i = new Intent(AjpdSoftMySQL.this, Activity_Configuracion.class);

startActivity(i); } //Abrir navegador con URL especificada public void visitarURL(String url) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } //guardar configuración aplicación Android usando SharedPreferences public void guardarConfiguracion() { SharedPreferences prefs = getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("SQL", textSQL.getText().toString()); editor.putString("Catálogo", spnCatalogos.getSelectedItem().toString()); editor.commit(); }

//cargar configuración aplicación Android usando SharedPreferences public void cargarConfiguracion() { //leemos los valores de conexión al servidor //MySQL desde SharedPreferences SharedPreferences prefs = getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE);

SQLEjecutar = prefs.getString("SQL", ""); catalogoMySQL = prefs.getString("Catálogo", ""); ipServidorMySQL = prefs.getString("Conexión", "192.168.1.100"); contrasenaMySQL = prefs.getString("Contraseña", ""); puertoMySQL = Integer.toString(prefs.getInt("Puerto", 3306)); usuarioMySQL = prefs.getString("Usuario", "root"); } //Obtener lista de catálogos de MySQL public void obtenerListaCatalogos () { try { cargarConfiguracion(); conectarBDMySQL(usuarioMySQL, contrasenaMySQL, ipServidorMySQL, puertoMySQL, ""); //ejecutamos consulta SQL Statement st = conexionMySQL.createStatement(); ResultSet rs = st.executeQuery("show databases");

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 12: Mysql Android

rs.last(); Integer numFilas = 0; numFilas = rs.getRow(); listaCatalogos = new String[numFilas]; Integer j = 0; //mostramos el resultado for (int i = 1; i <= numFilas; i++) { listaCatalogos [j] = rs.getObject(1).toString(); j++; rs.previous(); } rs.close(); } catch (Exception e) { Toast.makeText(getApplicationContext(),

"Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} } //conectar al servidor de MySQL Server public void conectarBDMySQL (String usuario, String contrasena, String ip, String puerto, String catalogo) { if (usuario == "" || puerto == "" || ip == "") { AlertDialog.Builder alertDialog = new AlertDialog.Builder(AjpdSoftMySQL.this); alertDialog.setMessage("Antes de establecer la conexión " + "con el servidor " + "MySQL debe indicar los datos de conexión " + "(IP, puerto, usuario y contraseña)."); alertDialog.setTitle("Datos conexión MySQL"); alertDialog.setIcon(android.R.drawable.ic_dialog_alert); alertDialog.setCancelable(false); alertDialog.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { menuConfiguracion(); } }); alertDialog.show(); } else { String urlConexionMySQL = ""; if (catalogo != "") urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto + "/" + catalogo; else urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto; if (usuario != "" & contrasena != "" & ip != "" & puerto != "") { try {

Class.forName("com.mysql.jdbc.Driver"); conexionMySQL = DriverManager.getConnection(urlConexionMySQL, usuario, contrasena);

} catch (ClassNotFoundException e) { Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } catch (SQLException e) {

Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} } } } public static String ejecutarConsultaSQL(Boolean SQLModificacion, Context context) { try

{ String resultadoSQL = ""; //ejecutamos consulta SQL de selección (devuelve datos) if (!SQLModificacion) { Statement st = conexionMySQL.createStatement(); ResultSet rs = st.executeQuery(SQLEjecutar);

Integer numColumnas = 0;

//número de columnas (campos) de la consula SQL numColumnas = rs.getMetaData().getColumnCount();

//obtenemos el título de las columnas for (int i = 1; i <= numColumnas; i++) { if (resultadoSQL != "") if (i < numColumnas) resultadoSQL = resultadoSQL + rs.getMetaData().getColumnName(i).toString() + ";"; else resultadoSQL = resultadoSQL + rs.getMetaData().getColumnName(i).toString(); else if (i < numColumnas) resultadoSQL = rs.getMetaData().getColumnName(i).toString() + ";"; else resultadoSQL = rs.getMetaData().getColumnName(i).toString(); }

//mostramos el resultado de la consulta SQL while (rs.next()) { resultadoSQL = resultadoSQL + "n"; //obtenemos los datos de cada columna for (int i = 1; i <= numColumnas; i++) { if (rs.getObject(i) != null) { if (resultadoSQL != "") if (i < numColumnas) resultadoSQL = resultadoSQL + rs.getObject(i).toString() + ";"; else resultadoSQL = resultadoSQL + rs.getObject(i).toString(); else if (i < numColumnas) resultadoSQL = rs.getObject(i).toString() + ";"; else resultadoSQL = rs.getObject(i).toString(); } else { if (resultadoSQL != "")

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 13: Mysql Android

resultadoSQL = resultadoSQL + "null;"; else resultadoSQL = "null;"; } } resultadoSQL = resultadoSQL + "n"; } st.close(); rs.close();

} // consulta SQL de modificación de // datos (CREATE, DROP, INSERT, UPDATE) else { int numAfectados = 0; Statement st = conexionMySQL.createStatement(); numAfectados = st.executeUpdate(SQLEjecutar); resultadoSQL = "Registros afectados: " + String.valueOf(numAfectados); st.close(); } return resultadoSQL;

} catch (Exception e) { Toast.makeText(context, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show(); return ""; } } //en el evento "Cerrar aplicación" guardar los datos en fichero xml @Override public void onDestroy() { super.onDestroy(); guardarConfiguracion(); } //en el evento "Abrir aplicación" leemos los datos de //configuración del fichero xml @Override protected void onStart() { super.onStart(); cargarConfiguracion(); try { textSQL.setText(SQLEjecutar); //seleccionamos en el Spinner (lista desplegable) //el último catálogo MySQL usado if (catalogoMySQL != "") { listaCatalogos = new String[1]; listaCatalogos [0] = catalogoMySQL; ArrayAdapter adaptador = new ArrayAdapter(AjpdSoftMySQL.this, android.R.layout.simple_list_item_1, listaCatalogos); adaptador.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); spnCatalogos.setAdapter(adaptador); } } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } } }

Y el código del fichero "/src/Activity_Configuracion.java" correspondiente al activity donde introduciremos los datos de conexión al servidor MySQL y desde donde podremos realiaruna conexión de prueba. En dicho código guardaremos los valores en un fichero de configuración y podremos probar la conexión al servidor MySQL, también mostramos el menúcorrespondiente a este activity:

package com.example.ajpdsoftmysql;

import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import android.content.SharedPreferences;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class Activity_Configuracion extends Activity {

TextView textIP, textPuerto, textContrasena, textUsuario;private Button buttonProbarConexion;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity__configuracion); //Asignamos a cada objeto visual creado a su //respectivo elemento de main.xml textIP = (TextView)findViewById(R.id.txtIP); textPuerto = (TextView)findViewById(R.id.txtPuerto); textContrasena = (TextView)findViewById(R.id.txtContrasena); textUsuario = (TextView)findViewById(R.id.txtUsuario); buttonProbarConexion = (Button) findViewById(R.id.btProbarConexion); //Botón para ejecutar consulta SQL en MySQL buttonProbarConexion.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Conectamos con el servidor de MySQL directamente try

{ String conexionMySQLURL = "jdbc:mysql://" + textIP.getText().toString() + ":" + textPuerto.getText().toString(); String usuario = textUsuario.getText().toString(); String contrasena = textContrasena.getText().toString(); Toast.makeText(getApplicationContext(),

"Conectando a servidor MySQL", Toast.LENGTH_SHORT).show();

Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(conexionMySQLURL, usuario, contrasena); Toast.makeText(getApplicationContext(),

"Conectado Servidor MySQL", Toast.LENGTH_LONG).show();

con.close(); }

catch (ClassNotFoundException e)

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 14: Mysql Android

{ Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} catch (SQLException e) {

Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();

} catch (Exception e) { Toast.makeText(getApplicationContext(),

"Error: " + e.getMessage(), Toast.LENGTH_LONG).show();

} } }); }

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_activity__configuracion, menu); return true; }

//código para cada opción de menú @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_guardar_configuracion: guardarConfiguracion(); return true; case R.id.menu_acerca_de: visitarURL("http://www.ajpdsoft.com"); return true; default: return super.onOptionsItemSelected(item); } } //guardar configuración aplicación Android usando SharedPreferences public void guardarConfiguracion() { try { SharedPreferences prefs = getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("Conexión", textIP.getText().toString()); editor.putString("Contraseña", textContrasena.getText().toString()); int puerto = 3306; puerto = Integer.valueOf(textPuerto.getText().toString()); editor.putInt("Puerto", puerto); editor.putString("Usuario", textUsuario.getText().toString()); editor.commit(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show(); } } //cargar configuración aplicación Android usando SharedPreferences public void cargarConfiguracion() { try { SharedPreferences prefs = getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE); textIP.setText(prefs.getString("Conexión", "192.168.1.100")); textContrasena.setText(prefs.getString("Contraseña", "")); int puerto = 3306; puerto = prefs.getInt("Puerto", 3306); textPuerto.setText(Integer.toString(puerto)); textUsuario.setText(prefs.getString("Usuario", "root")); } catch (Exception e) { Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show(); } }

//Abrir navegador con URL determinada public void visitarURL(String url) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } //en el evento "Cerrar ventana" guardar los datos en fichero xml @Override public void onDestroy() { super.onDestroy(); guardarConfiguracion(); } //en el evento "Abrir ventana" leemos los datos de configuración del fichero xml @Override protected void onStart() { super.onStart(); cargarConfiguracion(); } }

En el siguiente enlace se puede descargar de forma gratuita el proyecto completo en Eclipse:

AjpdSoft Acceso MySQL Android código Java.

Aplicación Android AjpdSoft Acceso MySQL en funcionamientoA continuación explicamos cómo funciona la aplicación AjpdSoft Acceso MySQL Android, tras abrirla en el dispositivo smartphone o tablet con Android, pulsaremos en el botón de Menú deldispositivo:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 15: Mysql Android

Aparecerá el menú en la parte inferior, tocaremos en "Configuración":

Introduciremos los datos de conexión al servidor MySQL al que queramos conectarnos (IP, Puerto, Usuario y Contraseña):

Pulsaremos el botón de Menú del dispositivo y en el menú tocaremos en "Guardar configuración", de esta forma los datos de conexión se guardarán para futuras conexiones. Una vezestablecidos los datos podremos pulsar en el botón "Probar conexión", si todo es correcto mostrará el mensaje "Conectado servidor MySQL", cerraremos esta ventana y volveremos a laventana principal pulsando el botón Atrás del dispositivo:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 16: Mysql Android

Ahora deberemos elegir el catálogo (base de datos) que usaremos, para obtener las bases de datos del servidor al que nos hemos conectado pulsaremos en "Catálogos":

Nos mostrará en una lista desplegable todos los catálogos a los que el usuario especificado anteriormente tendrá acceso, tocaremos en el que queramos usar, por ejemplo "bdajpdsoft":

Ahora ya podremos introducir la consulta SQL que queramos para mostrar los datos que necesitemos, en el ejemplo mostramos la suma total de un campo de una tabla con:

select sum(counter) from nuke_stories

Tras escribir la consulta SQL tocaremos en "Ejecutar":

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 17: Mysql Android

Nota: hay que tener en cuenta que la aplicación no realiza LIMIT en las consultas de selección (SELECT), por lo que si queremos ejecutar una consulta quepuede devolver gran cantidad de datos recomendamos usar LIMIT para evitar que la aplicación se ralentice en exceso o incluso deje de responder. Porejemplo:

select * from factura limit 0,10

(mostrará los 10 primeros registros de la tabla "factura")

La aplicación mostrará todos los datos de la consulta SQL ejecutada (nombre de las columnas y valor de cada una de ellas):

AjpdSoft Acceso MySQL Android también permite ejecutar consultas SQL de modificación de datos (INSERT, UPDATE, DELETE, DROP, CREATE, ALTER), para ello escribiremos la consultaSQL y marcaremos "SQL de modificación":

En el siguiente enlace se puede descargar de forma gratuita el proyecto completo en Eclipse:

AjpdSoft Acceso MySQL Android código Java.

Publicar aplicación Android en Google PlayEn el siguiente tutorial explicamos cómo publicar una aplicación para dispotivos Android en Google Play (antes Google Android Market):

Publicar aplicación Android en Google Play, obtener beneficios.

Artículos relacionadosAjpdSoft Acceso MySQL Android código Java.Menús en Android, cómo añadir menús a nuestras aplicaciones Android Java Eclipse.Cómo añadir un botón y su código en aplicación Android con Eclipse.Mi primera aplicación Android con Eclipse en Linux, instalar Eclipse Ubuntu.

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656

Page 18: Mysql Android

Publicar aplicación Android en Google Play, obtener beneficios.Desarrollar aplicación Android con acceso a base de datos SQLite con Eclipse.Desarrollar aplicaciones Android con Google App Inventor de forma visual.Desarrollar aplicación lector de códigos de barras para Android con App Inventor.AjpdSoft Monitor Wifi Android.AjpdSoft Agenda Telefónica Android.AjpdSoft Lector Códigos de Barras Android.Como crear una aplicación con Java y Eclipse.Instalación y configuración de Eclipse SQL Explorer en Eclipse (Java).Instalar y trabajar con la clase Visual Editor de Eclipse (Java).Mi primera aplicación para teléfono móvil basada en Java (J2ME) con NetBeans.Java en estado puro, mi primera aplicación Java.Cómo acceder a MySQL con JSP, Tomcat y JDBC.Artículos del Proyecto AjpdSoft sobre el lenguaje de programación Java.Ejercicios resueltos en el lenguje de programación C.Artículos del Proyecto AjpdSoft sobre sistemas operativos (Windows, GNU Linux, etc.).Artículos del Proyecto AjpdSoft sobre los sistemas operativos Microsoft Windows.Artículos del Proyecto AjpdSoft sobre programación.Artículos del Proyecto AjpdSoft sobre Delphi (lenguaje de programación).Artículos del Proyecto AjpdSoft sobre Visual Basic (lenguaje de programación).

CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto Proyecto AjpdSoft.

Artículo en inglés.

Enviado el Saturday, 25 May a las 01:23:29 por ajpdsoft

Seguir a Seguir a @ajpdsoft@ajpdsoft 3,313 seguidores

Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+

3020Me gustaMe gusta CompartirCompartir Sé el primero de tus amigos en seguir a Proyecto AjpdSoft.

Seguir

Seguir

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=656