Posición: Member
Grupos: Registered
Registrado: 03/10/2013(UTC) Mensajes: 13 Ubicación: Chile Agradecimientos: 1 veces Fue agradecido: 3 vez/veces in 3 publicación(es).
|
gente tengo una duda me gustaría poder obtener datos desde una BD externa ya sea MYSQL o Oracle en realidad desde cualquiera si es posible y ojala Open Source pero no he encontrado mucha información al respecto en la web y varios a puntan a que es mejor utilizar php para la conexión ya que es riesgo-so hacerlo directamente desde la aplicación alguien de este foro tiene información de
- Métodos de Conexión a diversas BD - Seguridad de conexión
muchas gracias.
|
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Hola!
Yo solo he hecho BD locales... :S
He leido algo sobre eso, hay que hacer un servicio web para conectar la BD y tener acceso desde nuetro Android, las conexiones se hacen mediante SOAP y REST.
Mas adelante hare un tuto para esto, pero quiero hacer otras lecciones antes, no se lo que tardare, cada leccion lleva su tiempo hacerlas...
Bueno un saludo!! si encuentras algo ponlo x aqui! |
|
|
|
|
Posición: Member
Grupos: Registered
Registrado: 03/10/2013(UTC) Mensajes: 13 Ubicación: Chile Agradecimientos: 1 veces Fue agradecido: 3 vez/veces in 3 publicación(es).
|
ahora estoy trabajando con MYSQL pronto pondré toda la información al respecto.
pero estoy usando el modo Android -> PHP -> MySql
Slds
|
1 usuario agradecido cacevedomedel por esta útil publicación.
|
|
|
Posición: Newbie
Grupos: Registered
Registrado: 21/11/2013(UTC) Mensajes: 1
Fue agradecido: 1 vez/veces in 1 publicación(es).
|
Hola, no he trabajado mucho en android pero si me he conectado a BD externa solo para prueba, como comentario soy nuevo en este foro.
yo use webservices en PHP usando NuSoap una libreria php para hacer webservices, muy facil en realidad, ahi era como un metodo de algun servicio el cual me lleva hasta la BD para leer/escribir lo que quiera.
en android creo que por default no puedes acceder a web services, asi que busque una libreria para poder ejecutar este WS desde el dispositivo , si mal no recuerdo utilize una libreria llamada ksoap2 , la cual me facilitaba el llamado al web service, y el procesamiento del resultado enviado por el web service.
Espero te sirva de algo mi comentario.
|
1 usuario agradecido Mintakastar por esta útil publicación.
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Hola!
Muchas gracias por los aportes!! a ver si poco a poco y entre todos hacemos mas facil esto de programar!! ;P |
|
|
|
|
Posición: Member
Grupos: Registered
Registrado: 03/10/2013(UTC) Mensajes: 13 Ubicación: Chile Agradecimientos: 1 veces Fue agradecido: 3 vez/veces in 3 publicación(es).
|
mañana subo toda la info por fin logre la conexión
|
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Genial!! esto sera de mucha ayuda, hay mucha gente que me a preguntado sobre esto!!
¡¡gracias!! |
|
|
|
|
Posición: Member
Grupos: Registered
Registrado: 03/10/2013(UTC) Mensajes: 13 Ubicación: Chile Agradecimientos: 1 veces Fue agradecido: 3 vez/veces in 3 publicación(es).
|
Bueno por fin logre conectar mi android a una BD MySQL paso a explicar. Esta conexión se realiza Pasando a través de Android (java) >= 3.0 --> PHP (Hosting en mi caso también puede ser local) --> MySQL (hosting) lo primero es crear nuestro PHP recibiendo datos con el método POST para esto creamos 2 archivos PHP uno con las conexiones a la BD ademas ejecuta la consulta y otro que envié una query este es el código de conexión a la BD archivo llamado functions.php
Código:<?php
header( 'Content-Type: text/html;charset=utf-8' );
function getSQLResultSet($commando){
$link = mysql_connect('localhost', 'NOMBRE USUARIO BD', 'CLAVE') or die('No se pudo conectar: ' . mysql_error());
// echo 'Connected successfully';
mysql_select_db('NOMBRE BD') or die('No se pudo seleccionar la base de datos');
// echo 'Seleccion successfully';
$result = mysql_query($commando) or die('Consulta fallida: ' . mysql_error());
$line = mysql_fetch_array($result, MYSQL_ASSOC);
return $line;
mysql_close($link);
}
?>
este archivo cuenta con una función llamada getSQLResultSet el cual contiene los datos de la Base de datos y ejecuta mi query enviada desde el otro archivo llamado consultarUsuario.php
Código:<?php
include'functions.php';
$cc=$_POST['cc'];
//startprueba();
if ($resultset = getSQLResultSet("SELECT Cedula,Nombre,Apellido,Direccion,Telefono
FROM `tablaprueba` where Cedula='$cc'")) {
foreach ($resultset as $col_value) {
echo $col_value."\n";
}
}else{
echo "Error Con la Consulta";
}
?>
este archivo recibe una variable con el método post luego valida y envía una consulta con la información para luego mostrar un resultado. esto es solo para el PHP y MySQL Editado por un usuario jueves, 21 de noviembre de 2013 22:28:15(UTC)
| Razón: No especificada
|
|
|
|
Posición: Member
Grupos: Registered
Registrado: 03/10/2013(UTC) Mensajes: 13 Ubicación: Chile Agradecimientos: 1 veces Fue agradecido: 3 vez/veces in 3 publicación(es).
|
siguiendo con la conexión explico ahora el código que lleva nuestro android. debemos crear el proyecto de forma típica y crear una clase llamada nueva en mi caso utilice httpHandler.java este es el código
Código:import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class httpHandler {
public String post(String posturl){
try {
HttpClient httpclient = new DefaultHttpClient();
/*Creamos el objeto de HttpClient que nos permitira conectarnos mediante peticiones http*/
HttpPost httppost = new HttpPost(posturl);
/*El objeto HttpPost permite que enviemos una peticion de tipo POST a una URL especificada*/
//AÑADIR PARAMETROS
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("cc","1"));
/*Una vez añadidos los parametros actualizamos la entidad de httppost, esto quiere decir en pocas palabras anexamos los parametros al objeto para que al enviarse al servidor envien los datos que hemos añadido*/
httppost.setEntity(new UrlEncodedFormEntity(params));
/*Finalmente ejecutamos enviando la info al server*/
HttpResponse resp = httpclient.execute(httppost);
HttpEntity ent = resp.getEntity();/*y obtenemos una respuesta*/
String text = EntityUtils.toString(ent);
return text;
}
catch(Exception e) { return e.toString();}
}
}
luego en nuestro XML debe quedar así
Código:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
</RelativeLayout>
y aquí lo mas importante nuestro MainActivity.Java
Código:
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
httpHandler handler = new httpHandler();
String txt = handler.post("http://XXXXX.com/consultarUsuario.php");
TextView t = (TextView)findViewById(R.id.text1);
t.setText(txt);
} catch (Exception e) {
e.printStackTrace();
String txt = e.toString();
TextView t = (TextView)findViewById(R.id.text1);
t.setText(txt);
}
}
});
thread.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
si se fijan bien es donde inserto mi URL adjunto también documentación de donde obtuve las ideas sobre este tema.
http://codigoprogramacion.com/cursos/android/enviar-una-peticion-http-post-desde-android-a-aplicacion-web-php.html
muchos tutoriales están hechos con android <= 3.0 por lo que superior a esta versión arrojara problemas de manejos de hilos secundarios. si necesitan el código completo no tengo problema en hacerlo llegar yo lo probé en un Motorola XT925 4.1.2 Slds
|
1 usuario agradecido cacevedomedel por esta útil publicación.
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
MUY BUEN APORTE!! muchas gracias por la informacion!! ;P |
|
|
|
|
Salto de foro
No puedes iniciar nuevos temas en este foro.
No puedes responder a temas en este foro.
No puedes eliminar sus temas en este foro.
No puedes editar sus temas en este foro.
No puedes crear encuestas en este foro.
No puedes votar las encuestas en este foro.