Código fuente en Java para App Android que obtiene y muestra todos los registros de una consulta SQL de forma automática. Este código es para dispositivos Android aunque, modificando 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:
1 2 3 4 5 6 7 8 9 10 11 |
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
String SQLEjecutar = "select * from facturas"; String catalogoMySQL = "bdfacturas"; conectarBDMySQL("root", "contraseña", "proyectoa.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(); |