margaca
05/12/15, 14:09:25
Hola,
Estoy empezando en Android y me han mandado como tarea que haga una aplicación que se conecta directamente a mysql y que lea datos, registre, elimine, actualice...
Ya he conseguido conectar con la base de datos mysql y que muestre datos. Consigo insertar registros pero metiéndole los valores yo a en la consulta. Quisiera saber si me pueden ayudar en como puedo coger los valores que introduzca el usuario en los editText del formulario y guardarlos en mi base de datos.
Dejo aquí el código de como realizo la conexión y la ejecución de consultas:
Clase BD
public class BD {
private String ipServidorMySQL, contrasenaMySQL, usuarioMySQL,
puertoMySQL;
private Connection conexionMySQL=null;
private String driver="com.mysql.jdbc.Driver";
public void conectarBDMySQL ()
{
String urlConexionMySQL = "";
/* if (catalogo != "")
urlConexionMySQL = "jdbc:mysql://" + ip + ":" +
puerto + "/" + basedatos;
else
// urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto;
if (usuario != "" & contrasena != "" & ip != "" & puerto != "")
{*/
try
{
Class.forName(driver);
// conexionMySQL = DriverManager.getConnection(urlConexionMySQL,usuar io, contrasena);
conexionMySQL = DriverManager.getConnection(
"jdbc:mysql://10.0.3.2:3306/usuario_bd", "root", "");
Log.i("Conectado", "Conectadito");
}
catch (ClassNotFoundException e)
{
// Log.i(e.getMessage());
}
catch (SQLException e)
{
// Log.i(e.getMessage());
}
// }
}
public String ejecutarConsultaSQL() throws SQLException {
// Preparamos la consulta
Statement sentencia = conexionMySQL.createStatement();
ResultSet resul = sentencia.executeQuery("SELECT nombre FROM usuario");
// Recorremos el resultado para visualizar cada fila
// Se hace un bucle mientras haya registros, se van visualizando
String cadena = "";
while (resul.next()) {
// System.out.println(resul.getInt(1)+" "+resul.getString(2)+" "+
// resul.getString(3));
cadena += resul.getString("nombre")+" \n";
/* Toast.makeText(context,
"Error: " + cadena,
Toast.LENGTH_SHORT).show();*/
}
resul.close();// cerrar ResultSet
sentencia.close();// Cerrar Statement
// conexion.close();// Cerrar conexion
return cadena;
}
public void ejecutarRegistroSQL() {
// Preparamos la consulta
try {
Statement sentencia = conexionMySQL.createStatement();
String sql= "INSERT INTO usuario"
+ "(documento, nombre) " + "VALUES"
+ "('22225', 'NOMBRE')";
sentencia.executeUpdate(sql);
System.out.println("registro ok");
} catch (SQLException e) {
e.printStackTrace();
System.err.println("No registrado");
}
}
public Connection getConexionMySQL() {
return conexionMySQL;
}
}
Clase HiloBD
public class HiloConexionBD extends Thread {
private BD bd;
public HiloConexionBD(BD bd){
this.bd=bd;
}
override
public void run() {
super.run();
bd.conectarBDMySQL();
if (bd.getConexionMySQL()!=null){
try {
String resultado= bd.ejecutarConsultaSQL();
System.out.println(resultado);
bd.ejecutarRegistroSQL();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
En el MainActivity, al botón le asigno el siguiente método para que ejecute las consultas:
public void ejecutarHilo(View view){
Thread hiloconexionBD= new HiloConexionBD(new BD());
hiloconexionBD.start();
}
Gracias de antemano y un saludo.
Estoy empezando en Android y me han mandado como tarea que haga una aplicación que se conecta directamente a mysql y que lea datos, registre, elimine, actualice...
Ya he conseguido conectar con la base de datos mysql y que muestre datos. Consigo insertar registros pero metiéndole los valores yo a en la consulta. Quisiera saber si me pueden ayudar en como puedo coger los valores que introduzca el usuario en los editText del formulario y guardarlos en mi base de datos.
Dejo aquí el código de como realizo la conexión y la ejecución de consultas:
Clase BD
public class BD {
private String ipServidorMySQL, contrasenaMySQL, usuarioMySQL,
puertoMySQL;
private Connection conexionMySQL=null;
private String driver="com.mysql.jdbc.Driver";
public void conectarBDMySQL ()
{
String urlConexionMySQL = "";
/* if (catalogo != "")
urlConexionMySQL = "jdbc:mysql://" + ip + ":" +
puerto + "/" + basedatos;
else
// urlConexionMySQL = "jdbc:mysql://" + ip + ":" + puerto;
if (usuario != "" & contrasena != "" & ip != "" & puerto != "")
{*/
try
{
Class.forName(driver);
// conexionMySQL = DriverManager.getConnection(urlConexionMySQL,usuar io, contrasena);
conexionMySQL = DriverManager.getConnection(
"jdbc:mysql://10.0.3.2:3306/usuario_bd", "root", "");
Log.i("Conectado", "Conectadito");
}
catch (ClassNotFoundException e)
{
// Log.i(e.getMessage());
}
catch (SQLException e)
{
// Log.i(e.getMessage());
}
// }
}
public String ejecutarConsultaSQL() throws SQLException {
// Preparamos la consulta
Statement sentencia = conexionMySQL.createStatement();
ResultSet resul = sentencia.executeQuery("SELECT nombre FROM usuario");
// Recorremos el resultado para visualizar cada fila
// Se hace un bucle mientras haya registros, se van visualizando
String cadena = "";
while (resul.next()) {
// System.out.println(resul.getInt(1)+" "+resul.getString(2)+" "+
// resul.getString(3));
cadena += resul.getString("nombre")+" \n";
/* Toast.makeText(context,
"Error: " + cadena,
Toast.LENGTH_SHORT).show();*/
}
resul.close();// cerrar ResultSet
sentencia.close();// Cerrar Statement
// conexion.close();// Cerrar conexion
return cadena;
}
public void ejecutarRegistroSQL() {
// Preparamos la consulta
try {
Statement sentencia = conexionMySQL.createStatement();
String sql= "INSERT INTO usuario"
+ "(documento, nombre) " + "VALUES"
+ "('22225', 'NOMBRE')";
sentencia.executeUpdate(sql);
System.out.println("registro ok");
} catch (SQLException e) {
e.printStackTrace();
System.err.println("No registrado");
}
}
public Connection getConexionMySQL() {
return conexionMySQL;
}
}
Clase HiloBD
public class HiloConexionBD extends Thread {
private BD bd;
public HiloConexionBD(BD bd){
this.bd=bd;
}
override
public void run() {
super.run();
bd.conectarBDMySQL();
if (bd.getConexionMySQL()!=null){
try {
String resultado= bd.ejecutarConsultaSQL();
System.out.println(resultado);
bd.ejecutarRegistroSQL();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
En el MainActivity, al botón le asigno el siguiente método para que ejecute las consultas:
public void ejecutarHilo(View view){
Thread hiloconexionBD= new HiloConexionBD(new BD());
hiloconexionBD.start();
}
Gracias de antemano y un saludo.