Lenguaje de programación Java para aplicaciones Android
Código en Java para Android que obtiene y muestra todos los registros de una consulta SQL de forma automática. Este código es para dispositivos Android aunque, moficiando algunos detalles, es válido para cualquier aplicación Java.
Para conectar con la base de datos (en el ejemplo con una BD MySQL):
Declaraciones públicas:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
.............
Connection conexionMySQL;
............
Procedimiento para conectar con el servidor de base de datos (MySQL)
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();
}
}
}
}
Para obtener en un cuadro de texto todos los registros y columnas de la consulta SQL ejecutada:
String SQLEjecutar = "select * from facturas;
String catalogoMySQL = "bdfacturas";
conectarBDMySQL("root", "contraseña",
"ajpdsoft.com", "3306", catalogoMySQL);
//ejecutamos consulta SQL de selección (devuelve datos)
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())
{
//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();
}
resultadoSQL = resultadoSQL + " ";
//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 != "")
resultadoSQL = resultadoSQL + "null;";
else
resultadoSQL = "null;";
}
}
resultadoSQL = resultadoSQL + " ";
}
textResultadoSQL.setText(resultadoSQL);
st.close();
rs.close();
Publicado el: 2013-05-22