|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Atacar a MySQL directamente ANDROID
Muy buenas, estoy buscando algún código para que podamos acceder a MySQL con Android directamente (sin PHP), se puede usar JDBC para ello?
Un Saludo. |
|
#2
|
||||
|
||||
No se puede, al menos con el SDK básico, existen SDKs de pago que si permiten la conexión a distintos tipos de bases de datos (incluido MySQL), que lo que hacen es programar el "driver" dentro de sus librerías y a ti te facilitan el API.
El motivo por el que ocurre esto (al menos es mi teoría) es la guerra existente entre Oracle y Google por la demanda que le ha puesto la primera a la segunda por violar las patentes de Java (en mi opinión sin fundamento, pero eso lo tendrá que decir un juez). Yo esto lo he resuelto creando una página PHP a la que mediante POST le mando la sentencia SQL (si, inseguridad a tope, pero es lo que hay), y luego el resultado lo recojo en un JSON. Para amortiguar el efecto lo mejor sería crear vistas y que el usuario en el PHP solo tenga acceso a esas vistas. |
#3
|
||||
|
||||
Muy buenas, alguien sabe alguna librería de pago para haga esto y no tener que usar PHP.
Un Saludo. |
#4
|
||||
|
||||
Descarga el conector oficial y gratuito de MySQL para Java (link) y haz algo tal que así:
Código:
private Connection conecta() { try { String url = "jdbc:mysql://IPdelServidor:3306/nombre_de_base_de_datos"; con = (Connection) DriverManager.getConnection( url,"usuario", "password"); } catch (Exception e) { } } Código:
try { PreparedStatement st = (PreparedStatement)con.prepareStatement("SELECT * FROM tabla WHERE algo LIKE ?"); st.setString(1, "algunString"); ResultSet res = st.executeQuery(); res.first(); while(!res.isAfterLast()) { int id = res.getInt("id"); String nombre = res.getString("campoNombre"); //etc res.next(); } } catch (Exception e) { Log(e); } Código:
try { //Si tienes un String con la query entera, usa Statement. Si tienes que meterle variables usa PreparedStatement st = (Statement)con.createStatement(); st.execute("DELETE FROM tabla WHERE id = 800"); //o p.ej.: UPDATE tabla SET meh = 'asd' WHERE id = 2 st.close(); } catch (Exception e) { Log(e); } |
#5
|
||||
|
||||
Muchas gracias, me podrias decir, ¿ como instalo lo que me tengo que descargar en eclipse?
|
#6
|
||||
|
||||
o mejor tendrías un projecto pequeño con todo esto para yo ver como se hace, la cuestion es que ya lo he intentado pero no me lee el .jar de java mysql.
Un Saludo y mil gracias. |
#7
|
||||
|
||||
Botón derecho en el proyecto - Properties - Java Build Path - Add External JARs
|
#8
|
||||
|
||||
Muchas Gracias por todo ya te comento cuando lo pruebe.
Un Saludo. |
#9
|
||||
|
||||
Muy buena, la verdad es que yo he usado JS con JSON y es bastante bastante complicado
|
#10
|
||||
|
||||
Android - MySql
Alguien que haya probado esta solución y le funcione.
Al generar el proyecto (BUILD) da el siguiente error. Conversion to Dalvik format failed with error 1. Saludos y gracias. |
#11
|
||||
|
||||
Android y MySQL
Alguien que haya podido acceder a MySQL desde Android, como lo ha hecho.
Versiones de JDBC, Eclipse y demás. Saludos y gracias. |
#12
|
||||
|
||||
Ese error lo he visto a veces por XMLs incorrectos, por poner mayúsculas donde no deja o cosas así. Abre la vista de errores y busca dónde ha fallado la conversión a Dalvik. |
#13
|
||||
|
||||
Ok, gracias en cuanto lo pruebe digo algo pues creo que es un tema interesante. (Para mi mucho). Saludos Jose. |
#14
|
||||
|
||||
Buenas tardes soy nuevo por estas zonas,
Estoy realizando una aplicación en android que requiero conectarla a una base de datos mysql pero no logro hacerlo mi pregunta es si alguno de uds tiene un ejemplo ya realizado, algo sencillo incluir eliminar modificar solo dos campos con lo demas tratare de ver como me las arreglo Gracias de antemano.
__________________
---------------------------------
Gracias de antemano, Darry Castro http://www.aripagua.com El hombre es tan fuerte como el Hierro, pero el dinero tan corrosivo como el Mar...! |
#15
|
||||
|
||||
Buenos días amigos. Quizás vengo algo tarde pero bueno.
Estoy con mi proyecto fin de carrera, empezando,y me he dado cuenta de que hay 2 formas de conectarse a una base de datos externa: - Crear un servicio web (soap o rest) e invocarlo en la app de android. - Crear un script o programilla que responda a peticiones HTTP get o post (como han dicho arriba, más o menos). [ Enlace: http://stackoverflow.com/questions/9...ysql-connector ] Ejemplo: http://codeoncloud.blogspot.com.es/2...ql-client.html Seguiré investigando. |
#16
|
||||
|
||||
Tengo una pregunta para los que entendeis este tema.
Que desventajas tiene usar una conexion a MySQL a traves de scripts php?? Aunque el servidor sea contratado y con un buen cortafuegos?? Yo de momento voy tirando con este metodo, GET y POST. Última edición por rinxe Día 10/02/13 a las 16:55:34. |
#17
|
||||
|
||||
Mientras haya seguridad, da igual si es un script de PHP, si es un web service o si te inventas un protocolo basado en sockets TCP, por ejemplo.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#18
|
||||
|
||||
A priori ninguna, el pecado es conectarse directamente desde Android porque significa meter el usuario y la clave de la base de datos en el código de la aplicación, que si te lo descompilan te hacen la pascua.
Mientras haya seguridad, da igual si es un script de PHP, si es un web service o si te inventas un protocolo basado en sockets TCP, por ejemplo. ![]() |
#19
|
||||
|
||||
Yo ahora además uso OAuth al iniciar la conexión, obtienes los 2 tokens y eso es lo que usas durante esa sesión. |
|
#20
|
||||
|
||||
Desconocia tambien lo de OAuth pero ya le estoy hechando un ojo en Android Developers. gracias por la info En mi caso la putada es que no se nada de php, lo tengo hecho a traves de ejemplos modificandolos un poco y consultado una columna entera. Si el ultimo registro es igual al de mi base de datos, la app no hace nada y sino lo actualiza. El tema seria hacer una consulta al ultimo registro de MySQL y si no esta en la base de datos, que se actualice, para consumir los minimos recursos de red. |
![]() |
![]() |
||||||
|
Herramientas | |