Peut-on se connecter à distance à la base MySQL dans Android à l'aide de JDBC?
Je développe une application client-serveur qui nécessite la connexion base de données distante.
Je sais que des tutoriels sur le web et plus de gens sont à l'aide de PHP pour interagir avec MySQL. Mais, je ne suis pas si bon en PHP et mon expérience préalable est avec le Noyau de Java, Swing, JDBC.
Quelqu'un peut-il me guider s'il est possible de se connecter à distance de bases de données MySQL à l'aide de JAVA JDBC Api de l'application Android?
Je ne sais pas quel genre de tutoriel que vous êtes en train de lire, mais pour une application Android pour interagir avec une base de données, vous devez utiliser les services RESTful. Ces services peuvent être construits à l'aide de PHP, Java ou un autre langage de programmation.
Je n'ai seach sur les deux - MAINS pour PHP et RESTLET pour JAVA...Mais, je suis très novice à des applications client-serveur. Je ne sais pas Comment peut-on utiliser JDBC avec RESTLET webservices.
Vous devez vous concentrer sur une chose à la main. Recherche pour l'un tutoriel sur la façon de construire un service RESTful à l'aide de Java, probablement à l'aide de Tomcat ou Jetty. Puis, après que vous trouverez ce service RESTful est soutenu par une classe et une méthode, vous pouvez constater que vous pouvez utiliser JDBC à l'intérieur de cette classe, de méthode et de faire évoluer le but de votre service. Cela peut alors évoluer vers une architecture en couches et continuer à évoluer. Et plus important encore: vous allez apprendre tout en pratiquant tout ce genre de choses.
Je n'ai seach sur les deux - MAINS pour PHP et RESTLET pour JAVA...Mais, je suis très novice à des applications client-serveur. Je ne sais pas Comment peut-on utiliser JDBC avec RESTLET webservices.
Vous devez vous concentrer sur une chose à la main. Recherche pour l'un tutoriel sur la façon de construire un service RESTful à l'aide de Java, probablement à l'aide de Tomcat ou Jetty. Puis, après que vous trouverez ce service RESTful est soutenu par une classe et une méthode, vous pouvez constater que vous pouvez utiliser JDBC à l'intérieur de cette classe, de méthode et de faire évoluer le but de votre service. Cela peut alors évoluer vers une architecture en couches et continuer à évoluer. Et plus important encore: vous allez apprendre tout en pratiquant tout ce genre de choses.
OriginalL'auteur Fenil | 2014-10-20
Vous devez vous connecter pour publier un commentaire.
En gros: vous pouvez vous connecter à votre base de données MySQL (ou ce que vous utilisez) serveur, mais vous ne devriez pas faire directement à partir de votre application Android.
Raisons:
Les applications Android peuvent être décompilé, et le client doit disposer d'informations d'identification pour accéder à votre base de données. Si à l'aide de le droit outils de piratage comme Backtrack, puis malveillant client peut accéder, connectez-vous et exploiter les données dans votre base de données.
Si votre application est pour les clients de partout dans le monde, alors les clients doivent s'ouvrir et maintenir une connexion à votre base de données par opération ou ensemble d'opérations. L'ouverture d'un physique de connexion de base de données prend beaucoup de temps, même lorsque votre pc client est dans un LAN prochain pour le moteur de base de données serveur. Maintenant, imaginez l'ouverture d'une connexion à partir d'un pays dans l'autre côté de la planète par exemple, en Chine, au Japon, ou à partir d'un pays d'Amérique du Sud comme le Brésil ou le Pérou (où j'habite).
Pour ces 2 raisons que je peux trouver, c'est une mauvaise idée même d'essayer de se connecter à MySQL ou tout autre moteur de base de données directement à partir de votre téléphone de l'appareil.
Comment résoudre ce problème? L'utilisation d'une architecture orientée service où vous aurez au moins deux applications:
Demande du fournisseur de services. Cette application permettra de créer et de publier des services web (de préférence Reposant) et peut établir des politiques pour utiliser les services web comme utilisateur d'authentification et d'autorisation. Cette application permettra également de se connecter à la base de données et exécuter les opérations CRUD contre elle.
Service consommateur de l'application. Ce serait votre Android (ou tout autre mobile) de l'application.
De votre question, vous êtes en se concentrant sur le point 1. Comme je l'ai dit dans mes commentaires, vous pouvez créer une application Web en Java, créer un service RESTful là, qui se résume à un POJO (plain old java object) qui a une méthode par service. Dans cette méthode, puisque c'est la plaine de Java après tout, vous pouvez ajouter d'autres fonctionnalités telles que l'utilisation de JDBC.
Voici un coup d'envoi en exemple à l'aide de Jersey, Jackson (librairie JSON) et JDBC:
Vous pouvez vérifier pour d'autres configurations de l'application web Java dans un tutoriel comme mkyong de l' ou Vogella de l' ou l'un de vos autres comme (c'est trop d'informations à placer dans cette réponse).
Noter que, alors cette application peut évoluer vers une application en couches, et le code JDBC va aller dans une classe DAO, puis le
ProductRestService
classe d'accès à la base de données par le biais de cette classe DAO. Voici un autre coup d'envoi exemple:Et vous pouvez appliquer d'autres modifications à ce projet ainsi que de est en pleine évolution.
Au lieu d'écrire le fournisseur de Service d'application en Java (comme illustré ci-dessus), vous pouvez le faire en PHP. Ou en Python, Ruby, C#, Scala ou tout autre langage de programmation qu'offre cette technologie pour vous. Encore une fois, je ne suis pas sûr de ce genre de tutoriel que vous êtes en train de lire, mais cela doit être expliqué quelque part et expliquer que, pour les besoins de ce didacticiel, vous allez créer les services à l'aide de PHP. Si vous vous sentez plus à l'aise pour écrire ces services en Java plutôt qu'en PHP ou tout autre langage, il n'y a pas de problème. Votre application android n'est pas vraiment attention à ce que la technologie est utilisée pour produire les services web, il va se soucient seulement de la consommation des services et que les données peuvent être consommés.
J'ai trouvé ceci en cherchant sur mon SEO: programmerguru.com/android-tutorial/... Tutoriel TL;DR la méthode qui appelle le service web externe est
invokeWS
. Je ne supporte pas le tutoriel.cant un webservice être ddos attaqué, alors comment est-il parfait? Oui, il protège pw, mais d'habitude j'ai encore besoin d'oauth ou encore une autre couche de chagrin? Je suis pencher en faveur de l'utilisation de mysql-procédures au lieu de webservice. De cette façon, je peux utiliser leur adresse IP pour limiter l'utilisation, d'un mauvais comportement. Oui, la propriété intellectuelle est spoofable, mais après les combats de 10 ans avec un php solution intermédiaire, je me penche vers mysql-procédures....
Tout service accessible par le web peut être attaqué à l'aide de DDoS ou de toute autre technique. Il suffit de connecter votre appareil à un point d'accès comme un réseau étendu, puis utiliser un sniffer pour voir le trafic réseau, vous verrez le serveur que votre périphérique de réaliser des appels, même via IP, puis DDoS le serveur, peu importe ce qui est là. L'utilisation de MySQL procédures ne changera pas ce fait.
OriginalL'auteur Luiggi Mendoza
Il est possible de le faire mais n'est pas recommandée. Je l'ai fait avant que j'ai été dans le même bateau que vous, donc je vais partager un peu de code.
J'ai utilisé ce jdbc bocal en particulier: https://www.dropbox.com/s/wr06rtjqv0q1vgs/mysql-connector-java-3.0.17-ga-bin.jar?dl=0
maintenant, pour le code:
Maintenant, pour mon async task:
Assurez-vous d'inclure internet autorisations dans le manifeste.
N'hésitez pas à poser plus de questions au sujet de mon code si vous en avez.
OriginalL'auteur Aaron C
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.
Pouvez-vous me dire ce que PHP fait ici? (si je développe en PHP)
OriginalL'auteur stacktry