La connexion à MySQL à partir de Android avec JDBC
J'ai utilisé le code suivant pour vous connecter MySQL
dans localhost
à partir d'Android. Il affiche uniquement les actions indiquées dans la section catch . Je ne sais pas si c'est un problème de connexion ou pas.
package com.test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Test1Activity extends Activity {
/** Called when the activity is first created. */
String str="new";
static ResultSet rs;
static PreparedStatement st;
static Connection con;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tv=(TextView)findViewById(R.id.user);
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://10.0.2.2:8080/example","root","");
st=con.prepareStatement("select * from country where id=1");
rs=st.executeQuery();
while(rs.next())
{
str=rs.getString(2);
}
tv.setText(str);
setContentView(tv);
}
catch(Exception e)
{
tv.setText(str);
}
}
}
Lorsque ce code est exécuté, il affiche "nouveau" dans l'avd.
java.lang.management.ManagementFactory.getThreadMXBean, referenced from method com.mysql.jdbc.MysqlIO.appendDeadlockStatusInformation
Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo
Could not find method javax.naming.Reference.get, referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.initializeFrom
Quelqu'un peut-il suggérer une solution? Et merci à l'avance
OriginalL'auteur manuraphy | 2012-09-02
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas accéder à une base MySQL à partir d'Android en natif. EDIT: en Fait, vous pourriez être en mesure d'utiliser JDBC, mais il n'est pas recommandé (ou peut ne pas fonctionner?) ... voir Android JDBC ne fonctionne pas: ClassNotFoundException sur le conducteur
Voir
http://www.helloandroid.com/tutorials/connecting-mysql-database
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html
http://codeoncloud.blogspot.com/2012/03/android-mysql-client.html
Pour la plupart des [bonne] les utilisateurs, ce pourrait être bien. Mais imaginez vous obtenez un pirate qui obtient une emprise de votre programme. J'ai décompilé mes propres applications et de ses effrayant ce que j'ai vu. Que faire si votre nom d'utilisateur /mot de passe pour votre base de données et faire des ravages? Mauvais.
Hai jack je ne comprends pas certaines lignes données dans ce blog principalement liées à Ksop private static final String SOAP_ACTION = "ws.retailer.com/customerData"; private static final String METHOD_NAME = "customerData"; private static final String NAMESPACE = "ws.retailer.com"; private static final String URL = "175.157.234.156:8085/ForBlog/services/RetailerWS?wsdl";
"Android ne peut pas se connecter directement au serveur de base de données" cela sonne comme un évangile. De quoi êtes-vous fait la promotion d'un intermédiaire (SOAP, REST, Web Services, et d'autres CORBA zombies)?
Je ne sais pas comment vous pouvez considérer cette réponse. Vous ne recommandons pas JDBC qui prend en charge les pilotes de bases de données. Et puis vous n'avez pas de support des services web. Alors, dites-moi, quelle est l'utilité de cette "réponse"?
Il n'a pas demandé un service web de mise en œuvre et je ne vais pas complètement le code ici. La question était: "la Connexion à MySQL à partir de Android avec JDBC". J'ai fait de la recherche et de l'information présentée. Veuillez améliorer / modifier / créer votre propre réponse si vous vous sentez que vous pouvez faire mieux.
OriginalL'auteur Jack
ce code s'exécute en permanence!!! créé par diko(Turquie)
OriginalL'auteur Ali
Si u besoin pour connecter votre application à un serveur, vous pouvez le faire par le biais de PHP/MySQL et JSON http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/ .Connexion Mysql code doit être dans AsynTask classe. Ne pas l'exécuter dans le Thread Principal.
OriginalL'auteur Arun
Voulez-vous de garder votre base de données sur mobile? L'utilisation de sqlite à la place de mysql.
Si l'idée est de garder la base de données sur le serveur et l'accès à partir d'un mobile. L'utilisation d'un webservice pour récupérer/modifier des données.
Bien sûr, vous pouvez créer un service web à l'aide de JSP. Un service web n'est rien mais une web application qui prend de la demande, chaîne/XML) et renvoie une réponse (Chaîne/XML/JSON). Vous pouvez facilement le faire dans n'importe quelle langue qui prend en charge la Demande/Réponse de l'Architecture (y compris les JSP). Mais si vous êtes à la recherche d'un bon documenté, professionnel et réutilisables solution, vous pouvez utiliser un outil comme RESTEasy.
OriginalL'auteur Kamal
Une autre approche consiste à utiliser un Virtual Pilote JDBC qui utilise une architecture à trois niveaux: votre code JDBC est envoyé via HTTP à distance une Servlet qui filtre le code JDBC (configuration & sécurité) avant de le transmettre au Pilote JDBC MySql. Le résultat est envoyé en arrière à travers le protocole HTTP. Il existe des logiciels gratuits qui utilisent cette technique. Juste Google "Android Driver JDBC sur HTTP".
OriginalL'auteur kaw
OriginalL'auteur user3252230
essayez de changer dans le gradle fichier de la targetSdkVersion à 8
OriginalL'auteur David Untama