Está en la página 1de 18

http://www.ajpdsoft.com/modules.php?

name=News&le=article&sid=656

Nuevo usuario
Principal

Inicio
Buscar
Contactar
Descargas
Enciclopedia
Estadsticas
Foros
Manuales, Artculos
Nuestra historia
Quines somos
Recomindanos
Temas
Top 10
Trucos Delphi, PHP, Java,

Inicio : Descargas : Trucos VB.Net, PHP, Delphi : Manuales : Cdigo Fuente

Seguir a @ajpdsoft

3,313 seguidores

Me gusta

Compartir

3020

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

Eclipse:

Acceso a MySQL desde Android con Eclipse, Java y JDBC

Enlaces Relacionados

Lector cdigos barras


Android

Tu cuenta

Aplicacin Android
AppInventor

Descargas

Aplicacin Android con


Eclipse

Visual Studio

ltimas Descargas
AjpdSoft Obtener datos
EAN13 en Delphi 6
AjpdSoft Gestin VMware
ESXi y vCenter
AjpdSoft XSD a XML
AjpdSoft Nmeros
Aleatorios VB.NET
AjpdSoft Gestin
Seguidores Twitter C#
AjpdSoft Informacin PC
WMI en VB.Net
AjpdSoft Acceso
PostgreSQL con Lazarus
x64
Ejemplo acceso nativo a
SQLite con ADO.Net en C#
Trminos
enciclopedias
.Net
ltimos
AjpdSoft Acceso MySQL
Out-File
Android
Enc.: Comandos
PowerShell
AjpdSoft Acceso SQLite
C# ADO.NET
Write-EventLog
Enc.: Comandos
AjpdSoft Acceso MySQL
PowerShell
con ADO.NET en C#
Get-EventLog
AjpdSoft Gestin Integral
Enc.: Comandos
cdigo fuente Delphi
PowerShell
AjpdSoft Indexar Texto
Get-FileHash
PDF C# iTextSharp
Enc.: Comandos
PowerShell
AjpdSoft Capturar
Pantalla C#
Compare-Object
Enc.: Comandos
AjpdSoft Gestin de
PowerShell
Transportes Ficheros
instalacin manual
StringReplace
Enc.: Funciones Delphi
Lo ms descargado
SMS
AjpdSoft Registro de OCX
Consejos
Enc.: Informtica
y DLL Cdigo Fuente Delphi
GSM
AjpdSoft Generador de
Enc.: Informtica
cdigos de barras EAN8 y
EAN13
VLAN
Enc.: Informtica
Borland Database
Desktop 7.0
LUN
Enc.: Informtica
AjpdSoft Conversor
Hexadecimal, Decimal,
ERP
Texto - Cdigo Fuente
Enc.: Informtica
Delphi
ADSL
AjpdSoft Aviso cambio IP
Enc.: Informtica
pblica
VDSL
AjpdSoft Administracin
Enc.: Informtica
Bases de Datos Cdigo
Fuente Delphi
DATE_FORMAT(fecha,
formato)
AjpdSoft Generador y
Enc.: Funciones MySQL
Lector cdigos QR VB.Net
SOAP
AjpdSoft Inventario PCs
Enc.: Informtica
AjpdSoft Facturacin
Cdigo Fuente Delphi
Lo ms visitado
AjpdSoft Conexin BD
URL
Visual Basic .Net
Enc.: Informtica
AjpdSoft Agenda
Attrib
Telefnica Android
Enc.: Comandos Windows
XP/Windows 2000/2003
Borland Database Engine
(consola MS-DOS)
BDE
At
AjpdSoft Inventario PCs
Enc.: Comandos Windows

Android acceso SQLite


Explicamos en este tutorial cmo 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 conexin. Realizaremos una conexin directa sin necesidad de usar un servidor web con PHP, ni JSON ni nada por el estilo. Adems, este mtodo servir para cualquier base
de datos que admita JDBC. Explicamos cmo crear una aplicacin Android desde cero, paso a paso.

Introduccin, antecedentes, Android y bases de datos.


Requisitos para desarrollar aplicacin para dispositivos Android con Eclipse.
Entorno de desarrollo de aplicaciones para Android con Eclipse.
Equipo o servidor con MySQL Server.
Aadir proyecto Android a Eclipse para aplicacin acceso MySQL, crear activity principal y men.
Aadir segundo activity para introduccin de los datos de conexin con servidor MySQL.
Descargar y aadir JDBC a proyecto Eclipse para acceso a MySQL desde Android.
Ejemplo acceso a BD MySQL desde Android con JDBC y Eclipse.
Cdigo Java aplicacin AjpdSoft Acceso MySQL Android.
Aplicacin Android AjpdSoft Acceso MySQL en funcionamiento.
Publicar aplicacin Android en Google Play.
Artculos relacionados.
Crditos.

Introduccin, antecedentes, Android y bases de datos


La conexin directa a una base de datos MySQL, PostgreSQL, Oracle, SQL Server, Firebird, etc. desde un dispositivo con sistema Android (mvil, tablet) es perfectamente posible. En
muchos sitios web hemos ledo que Android slo 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, slo 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 mvil o tablet con Android no podremos instalar
un servidor de MySQL, Oracle, PostgreSQL, etc.
Por lo tanto lo que explicaremos en este tutorial ser cmo acceder y trabajar con una base de datos externa al dispositivo Android usando la conexin de red o de Internet. No
necesitaremos hacer ningn tipo de instalacin adicional en nuestro dispositivo Android, ms all de nuestra propia aplicacin, no nesitaremos realizar tunneling, ni usar PHP, ni JSON ni
nada por el estilo. El nico requisito es que la aplicacin desarrollada en Android requerir de permiso para acceso a Internet, nada ms. 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 slo admite de forma local trabajar con bases de datos SQLite, la base de datos residir en el dispositivo mvil 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
conexin de red o Internet.

Aplicacin mvil J2ME


NetBeans
Aplicacin con Java y
Eclipse
Lector Cdigos Barrras
Android
Acceso a MySQL JDBC
Android
Entorno Eclipse Windows
8

Aplicacin Android Studio


Ms Acerca de Android
Noticias/artculos de
ajpdsoft
Noticia/artculo ms
leda sobre Android:
Desarrollar aplicacin
Android con acceso a base
de datos SQLite con Eclipse

Votos del Artculo


Puntuacin Promedio: 1.33
votos: 262

Por favor tmate un


segundo y vota por este
artculo:

En el siguiente tutorial explicamos cmo trabajar con bases de datos SQLite desde Android:
Desarrollar aplicacin Android con acceso a base de datos SQLite con Eclipse
Por supuesto, cada desarrollador estimar qu mtodo usar para conectar una aplicacin Android con un motor de base de datos externo, puede estimar usar PHP y JSON, nosotros no
decimos que no se haga as, slo decimos que puede realizarse una conexin directa desde Android a MySQL usando JDBC y Java como explicaremos a continuacin.

Grabar mi Voto!

Requisitos para desarrollar aplicacin 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 cmo instalar Eclipse y cmo preparar el entorno para desarrollar aplicaciones para dispositivos con Android en
Linux:
Mi primera aplicacin Android con Eclipse en Linux, instalar Eclipse Ubuntu.
Para Microsoft Windows 8:
Montar entorno de programacin 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 cmo instalarlo sobre Windows y Linux:
Cmo 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.
Cmo instalar MySQL Server en Linux y permitir conexiones remotas.
Instalar y configurar MySQL Server 5 en Linux Suse 10.
Cmo instalar MySQL Server 6.0 Alpha en Windows XP.

Aadir proyecto Android a Eclipse para aplicacin acceso MySQL, crear activity
principal y men
En primer lugar, si an no lo tenemos creado, crearemos un nuevo proyecto en Eclipse, para ello lo abriremos y pulsaremos en el men "File" - "New" - "Project":

Opciones
Enviar a un Amigo

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

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

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

Lenguajes
Selecciona Idioma de la
Interfaz:

Spanish

Application Name: nombre de la aplicacin, no recomendamos nombres muy largos pues de lo contrario no cabrn en los ttulos y dems donde aparezcan. En nuestro ejemplo
la 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 aplicacin, por ejemplo "Android 4.1 (API 16).
Minimun Required SDK: este campo es importante, deberemos indicar el API level mnimo requerido, a mayor API Level menor nmero de dispositivos Android soportarn
nuestra aplicacin. Por lo tanto deberemos indicar el API level ms pequeo posible, segn los procedimientos que usemos y los imports requeriremos uno u otro. En nuestro caso
el API Level mnimo ser 5 (API 5: Android 2.0 (Eclair).
Create custom launcher icon: si queremos que el asistente nos permita crear un icono para nuestra aplicacin marcaremos este check.
Create Project in Workspace: maraceremos esta opcin 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":

Webs recomendadas
Orasite.com

Coloca tu web aqu

Language english
English

Si hemos seleccionado la opcin de crear un icono para la aplicacin, el asistente nos mostrar la ventana para crear el icono personalizado, podremos cambiar el icono, cambiar color de
fondo y otras opciones:

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

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

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 navegacin para la nueva actividad, las opciones: Tabs, Tabs + Swipe, Swipe Views + Title Strip y Dropdown. Estos tipos de
navegacin requerirn API Level iguales o superiores a la 14.
Title: ttulo para la activity, por ejemplo "Acceso MySQL".
Para ms informacin sobre los activity de Android podis vistar este tutorial:
Aadir ventanas a aplicacin Android con Eclipse y Java, trabajar con Activity.
Tras introducir los datos para el activity pulsaremos "Finish" para crear el proyecto:

El asistente para aadir un nuevo proyecto Eclipse para dispositivos Android crear todos los ficheros necesarios para el proyecto, a continuacin indicamos algunos de los ms
importantes:
/src/AjpdSoftMySQL.java: cdigo java de la activity principal del proyecto. En este fichero colocaremos todo el cdigo java de nuestra aplicacin Android, al menos todo el que
tenga que ver con su activity correspondiente.
/bin/AndroidManifest.xml: fichero de configuracin principal de la aplicacin donde se indicarn, por ejemplo, todas las activity de la aplicacin.
/res/drawable-hdpi, /res/drawable-ldpi, /res/drawable-mdpi, /res/drawable-xhdpi: carpetas del proyecto donde se guardarn los ficheros de imgenes (iconos y dems) para las
diferentes resoluciones.
/res/layout/activity_ajpd_soft_my_sql.xml: carpeta y fichero para el layout, donde se indicarn los componentes grficos del activity relacionado, en este fichero
indicaremos todo lo que el usuario ver en la aplicacin Android de su mvil.
/res/menu/activity_ajpd_soft_my_sql.xml: carpeta y fichero con los datos necesarios para mostrar el men de nuestra aplicacin, lo usaremos para mostrar el segundo
activity que crearemos posteriormente para indicar los datos de conexin con el servidor MySQL.
/res/values/strings.xml: en este fichero indicaremos todas las cadenas de texto que se mostrarn al usuario en los mens, botones, etiquetas, mensajes, etc.
El asistente nos dejar la pestaa del layout abierta, para edicin en modo grfico, aadiremos al layout del activity principal de la aplicacin los siguientes componentes:
De la paleta "Form Widgets" aadiremos un "Spinner", en este desplegable mostraremos los catlogos (bases de datos) del servidor de MySQL al que nos conectemos.
De la paleta "Form Widgets" aadiremos un Button, este botn ser el que pulse el usuario para obtener los catlogos del servidor MySQL.
De la paleta "Text Fields" aadiremos un "EditText" multilnea (Multiline Text), en este campo el usuario podr introducir la consulta SQL a ejecutar contra el servidor MySQL.
De la paleta "Form Widgets" aadiremos un "CheckBox", en este check el usuario marcar si es una consulta de seleccin (SELECT, DESC, SHOW) o es una consulta de
modificacin de datos (INSERT, UPDATE, DROP,CREATE, ALTER).
De la paleta "Form Widgets" aadiremos un Button, este botn ser el que pulse el usuario para ejecutar la consulta SQL.
De la paleta "Text Fields" aadiremos un "EditText" multilnea (Multiline Text), en este campo la aplicacin devolver el resultado de la ejecucin de laconsulta SQL.
De la paleta "Text Fields" aadiremos un "TextView" en el que mostraremos un texto de aviso al usuario para que, si la consulta SQL es grande, use la clusula LIMIT para limitar
los registros a mostrar y que la aplicacin no se ralentice en exceso.

Todos estos datos visuales se guardarn 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&le=article&sid=656

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 guardarn todas las cadenas de texto que usaremos en la aplicacin "res/values/strings.xml":
Acceso MySQL
Configuracin
Acceso MySQL
Consulta SQL a ejecutar
Ejecutar
Resultado SQL
Acerca de
Configuracin
IP/Nombre red servidor
Puerto
Usuario
Contrasea
Base de datos
Acerca de
Guardar configuracin
Catlogo/BD
Probar conexin
Catlogos
SQL de modificacin
Utiliza LIMIT en las consultas SQL de seleccin,
si devuelven muchos registros podran provocar que la
aplicacin se ralentice en exceso o incluso deje de funcionar.
Por ejemplo: nselect * from factura limit 0,10 n(mostrar los 10
primeros 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 aplicacin para probarla y ver cmo quedan los componentes visuales, de momento ningn botn funcionar pues an 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&le=article&sid=656

Si todo es correcto se iniciar el emulador de dispositivos Android y se ejecutar la aplicacin:

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

El cdigo XML del fichero "/bin/AndroidManifest.xml":

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

Aadir segundo activity para introduccin de los datos de conexin con servidor
MySQL
Nuestra aplicacin 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 se
mostrar el resultado. Por otro lado, nuestra aplicacin 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&le=article&sid=656

puerto, base de datos, usuario, contrasea).


Para aadir un segundo activity a nuestra aplicacin para dispositivos Android desde Eclipse, pulsaremos con el botn derecho del ratn 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 navegacin para la nueva actividad, las opciones: Tabs, Tabs + Swipe, Swipe Views + Title Strip y Dropdown. Estos tipos de
navegacin requerirn API Level iguales o superiores a la 14. Seleccionaremos "None".
Title: ttulo para la activity, por ejemplo "Configuracin".

Pulsaremos "Finish":

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

El asistente nos dejar la pestaa del layout abierta, para edicin en modo grfico, aadiremos al layout del activity secundario (el que mostrar los datos de conexin al servidor MySQL)
los siguientes componentes:
De
De
De
De
De
De
De
De
De

la
la
la
la
la
la
la
la
la

paleta
paleta
paleta
paleta
paleta
paleta
paleta
paleta
paleta

"Text Fields" aadiremos un


"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Text Fields" aadiremos un
"Form Widgets" aadiremos

"TextView" en el que mostraremos un texto "IP/Nombre red servidor".


"EditText", en este campo el usuario introducir la IP/DNS del servidor de MySQL al que quiera conectarse.
"TextView" en el que mostraremos un texto "Puerto".
"EditText", en este campo el usuario introducir el puerto del servidor de MySQL al que quiera conectarse.
"TextView" en el que mostraremos un texto "Usuario".
"EditText", en este campo el usuario introducir el usuario del servidor de MySQL al que quiera conectarse.
"TextView" en el que mostraremos un texto "Contrasea".
"EditText", en este campo el usuario introducir la contrasea del servidor de MySQL al que quiera conectarse.
un Button, este botn ser el que pulse el usuario para ejecutar la consulta SQL.

Todos estos datos visuales se guardarn 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_Contrasea" />

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

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 tambin 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 ejecucin:

Nota: ms adelante explicaremos y mostraremos todo el cdigo Java para hacer funcionar todas las opciones visuales de la aplicacin Android con acceso a MySQL.

Descargar y aadir JDBC a proyecto Eclipse para acceso a MySQL desde Android
En 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 MySQL
Server 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 MySQL
accederemos a la URL:
http://dev.mysql.com/downloads/connector/j
A la fecha de este tutorial descargamos la versin Connector/J 5.1.24, podremos descargar el .tar o el .zip, ambos son vlidos para cualquier sistema operativo. Una vez descargado el
fichero mysql-connector-java-5.1.24.zip lo descomprimiremos pulsando con el botn derecho del ratn sobre l y seleccionado "Extraer aqu":

Dentro de este fichero comprimido habr varios (.jar, documentacin, cdigo fuente), el importante es el mysql-connector-java-5.1.24-bin.jar, copiaremos este fichero (pulsando sobre
l con el botn derecho):

Desde Eclipse, exploraremos nuestro proyecto Android, pulsaremos con el botn 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&le=article&sid=656

MySQL):

Ejemplo acceso a BD MySQL desde Android con JDBC y Eclipse


Una 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 datos
MySQL desde nuestra aplicacin Android con Eclipse. Para ello ser tan sencillo como agregar en los imports de nuestro fichero .java lo siguiente:
import
import
import
import
import

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

Aadiremos la siguiente variable de tipo "Connection", que usaremos para conectarnos slo una vez durante el proceso de ejecucin de una consulta SQL en MySQL:
Connection conexionMySQL;

Aadiremos un procedimiento para conectarnos al servidor MySQL, as podremos usarlo cada vez que lo necesitemos. Dicho procedimiento necesitar usuario, contrasea, IP o DNS,
puerto y catlogo del servidor de MySQL al que nos conectaremos, si hay algn error lo capturar y lo mostrar en una notificacin 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&le=article&sid=656

Como ejemplo nos conectaremos al servidor MySQL desde nuestra aplicacin Android, ejecutaremos una consulta SQL que devuelve registros y mostraremos el resultado en un cuadro de
texto:
buttonEjecutar.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
SSring QSLEjecutar = "select * from facturas limit 10";
conectarBDMySQL("root", "contrasea",
"ajpdsoft.com", "3306", "bdfacturas");
Statement st = conexionMySQL.createStatement();
ResultSet rs = st.executeQuery(SQLEjecutar);
String resultadoSQL = "";
Integer numColumnas = 0;
//nmero 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();
}
}
});
}

Cdigo Java aplicacin AjpdSoft Acceso MySQL Android


Cdigo Java completo del fichero "/src/AjpdSoftMySQL.java", este fichero contendr el cdigo Java del activity principal de la aplicacin, desde donde el usuario podr escribir las
consultas SQL que desee y ejecutarlas. En el cdigo incluimos todo lo necesario para conectar con el servidor MySQL especificado, guardar configuracin, cargar configuracin, obtener
lista de catlogos de MySQL (bases de datos), consulta de seleccin, consulta de modificacin, obtener datos de consultas de seleccin, mostrar men, etc.:
package com.example.ajpdsoftmysql;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

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

import
import
import
import
import

java.sql.Connection;
java.sql.DriverManager;
java.sql.ResultSet;
java.sql.SQLException;
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&le=article&sid=656

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);
//Botn para mostrar lista de catlogos (bases de datos) de MySQL
buttonCatalogos.setOnClickListener(new View.OnClickListener()
{
@Override
public 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();
}
}
});
//Botn 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;
}
//cdigo para cada opcin 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 Configuracin
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 configuracin aplicacin 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("Catlogo", spnCatalogos.getSelectedItem().toString());
editor.commit();
}
//cargar configuracin aplicacin Android usando SharedPreferences
public void cargarConfiguracion()
{
//leemos los valores de conexin al servidor
//MySQL desde SharedPreferences
SharedPreferences prefs =
getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE);
SQLEjecutar = prefs.getString("SQL", "");
catalogoMySQL = prefs.getString("Catlogo", "");
ipServidorMySQL = prefs.getString("Conexin", "192.168.1.100");
contrasenaMySQL = prefs.getString("Contrasea", "");
puertoMySQL = Integer.toString(prefs.getInt("Puerto", 3306));
usuarioMySQL = prefs.getString("Usuario", "root");
}
//Obtener lista de catlogos 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&le=article&sid=656

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 conexin " +
"con el servidor " +
"MySQL debe indicar los datos de conexin " +
"(IP, puerto, usuario y contrasea).");
alertDialog.setTitle("Datos conexin 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 seleccin (devuelve datos)
if (!SQLModificacion)
{
Statement st = conexionMySQL.createStatement();
ResultSet rs = st.executeQuery(SQLEjecutar);
Integer numColumnas = 0;
//nmero de columnas (campos) de la consula SQL
numColumnas = rs.getMetaData().getColumnCount();
//obtenemos el ttulo 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&le=article&sid=656

resultadoSQL = resultadoSQL + "null;";


else
resultadoSQL = "null;";
}
}
resultadoSQL = resultadoSQL + "n";
}
st.close();
rs.close();
}
// consulta SQL de modificacin 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 aplicacin" guardar los datos en fichero xml
@Override
public void onDestroy()
{
super.onDestroy();
guardarConfiguracion();
}
//en el evento "Abrir aplicacin" leemos los datos de
//configuracin del fichero xml
@Override
protected void onStart()
{
super.onStart();
cargarConfiguracion();
try
{
textSQL.setText(SQLEjecutar);
//seleccionamos en el Spinner (lista desplegable)
//el ltimo catlogo 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 cdigo del fichero "/src/Activity_Configuracion.java" correspondiente al activity donde introduciremos los datos de conexin al servidor MySQL y desde donde podremos realiar
una conexin de prueba. En dicho cdigo guardaremos los valores en un fichero de configuracin y podremos probar la conexin al servidor MySQL, tambin mostramos el men
correspondiente a este activity:
package com.example.ajpdsoftmysql;
import
import
import
import
import
import
import
import
import
import
import
import

android.net.Uri;
android.os.Bundle;
android.app.Activity;
android.content.Context;
android.content.Intent;
android.view.Menu;
android.view.MenuItem;
android.view.View;
android.widget.Button;
android.widget.TextView;
android.widget.Toast;
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);
//Botn 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&le=article&sid=656

{
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;
}
//cdigo para cada opcin 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 configuracin aplicacin Android usando SharedPreferences
public void guardarConfiguracion()
{
try
{
SharedPreferences prefs =
getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("Conexin", textIP.getText().toString());
editor.putString("Contrasea", 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 configuracin aplicacin Android usando SharedPreferences
public void cargarConfiguracion()
{
try
{
SharedPreferences prefs =
getSharedPreferences("AjpdSoftMySQL", Context.MODE_PRIVATE);
textIP.setText(prefs.getString("Conexin", "192.168.1.100"));
textContrasena.setText(prefs.getString("Contrasea", ""));
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 configuracin 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 cdigo Java.

Aplicacin Android AjpdSoft Acceso MySQL en funcionamiento


A continuacin explicamos cmo funciona la aplicacin AjpdSoft Acceso MySQL Android, tras abrirla en el dispositivo smartphone o tablet con Android, pulsaremos en el botn de Men del
dispositivo:

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

Aparecer el men en la parte inferior, tocaremos en "Configuracin":

Introduciremos los datos de conexin al servidor MySQL al que queramos conectarnos (IP, Puerto, Usuario y Contrasea):

Pulsaremos el botn de Men del dispositivo y en el men tocaremos en "Guardar configuracin", de esta forma los datos de conexin se guardarn para futuras conexiones. Una vez
establecidos los datos podremos pulsar en el botn "Probar conexin", si todo es correcto mostrar el mensaje "Conectado servidor MySQL", cerraremos esta ventana y volveremos a la
ventana principal pulsando el botn Atrs del dispositivo:

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

Ahora deberemos elegir el catlogo (base de datos) que usaremos, para obtener las bases de datos del servidor al que nos hemos conectado pulsaremos en "Catlogos":

Nos mostrar en una lista desplegable todos los catlogos 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&le=article&sid=656

Nota: hay que tener en cuenta que la aplicacin no realiza LIMIT en las consultas de seleccin (SELECT), por lo que si queremos ejecutar una consulta que
puede devolver gran cantidad de datos recomendamos usar LIMIT para evitar que la aplicacin se ralentice en exceso o incluso deje de responder. Por
ejemplo:
select * from factura limit 0,10
(mostrar los 10 primeros registros de la tabla "factura")
La aplicacin mostrar todos los datos de la consulta SQL ejecutada (nombre de las columnas y valor de cada una de ellas):

AjpdSoft Acceso MySQL Android tambin permite ejecutar consultas SQL de modificacin de datos (INSERT, UPDATE, DELETE, DROP, CREATE, ALTER), para ello escribiremos la consulta
SQL y marcaremos "SQL de modificacin":

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


AjpdSoft Acceso MySQL Android cdigo Java.

Publicar aplicacin Android en Google Play


En el siguiente tutorial explicamos cmo publicar una aplicacin para dispotivos Android en Google Play (antes Google Android Market):
Publicar aplicacin Android en Google Play, obtener beneficios.

Artculos relacionados
AjpdSoft Acceso MySQL Android cdigo Java.
Mens en Android, cmo aadir mens a nuestras aplicaciones Android Java Eclipse.
Cmo aadir un botn y su cdigo en aplicacin Android con Eclipse.
Mi primera aplicacin Android con Eclipse en Linux, instalar Eclipse Ubuntu.

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

Publicar aplicacin Android en Google Play, obtener beneficios.


Desarrollar aplicacin Android con acceso a base de datos SQLite con Eclipse.
Desarrollar aplicaciones Android con Google App Inventor de forma visual.
Desarrollar aplicacin lector de cdigos de barras para Android con App Inventor.
AjpdSoft Monitor Wifi Android.
AjpdSoft Agenda Telefnica Android.
AjpdSoft Lector Cdigos de Barras Android.
Como crear una aplicacin con Java y Eclipse.
Instalacin y configuracin de Eclipse SQL Explorer en Eclipse (Java).
Instalar y trabajar con la clase Visual Editor de Eclipse (Java).
Mi primera aplicacin para telfono mvil basada en Java (J2ME) con NetBeans.
Java en estado puro, mi primera aplicacin Java.
Cmo acceder a MySQL con JSP, Tomcat y JDBC.
Artculos del Proyecto AjpdSoft sobre el lenguaje de programacin Java.
Ejercicios resueltos en el lenguje de programacin C.
Artculos del Proyecto AjpdSoft sobre sistemas operativos (Windows, GNU Linux, etc.).
Artculos del Proyecto AjpdSoft sobre los sistemas operativos Microsoft Windows.
Artculos del Proyecto AjpdSoft sobre programacin.
Artculos del Proyecto AjpdSoft sobre Delphi (lenguaje de programacin).
Artculos del Proyecto AjpdSoft sobre Visual Basic (lenguaje de programacin).

Crditos
Artculo realizado ntegramente por Alonsojpd miembro fundador del proyecto Proyecto AjpdSoft.
Artculo en ingls.

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

Me gusta

Compartir

3020

Seguir a @ajpdsoft

3,313 seguidores

Seguir S el primero de tus amigos en seguir a Proyecto AjpdSoft.

Este sitio web NO CONTIENE malware, todos los programas con cdigo fuente aqu. Autor: Alonso Javier Prez Daz Google+ Sguenos en Google+