X

Anmelden

Passwort vergessen?

... oder mit Facebook anmelden:

Du hast noch keinen Zugang zu AndroidPIT? Registrieren

Android und MYSQL???

Android und MYSQL???
verfasst am 15.05.2012 08:13:40
Guten Morgen,

ich versuche grade von meiner App Daten von einer Mysql-Datenbank zu bekommen, die auf einem externen Server liegt.

Ich habe auch schon Google befragt und bin immer wieder auf die PHP Variante wie in diesem Tutorial gestoßen.

Die Frage ist jetzt, gibt es da auch einen anderen Weg? Weil ich habe nicht Lust für etliche SQL-Abfragen jedes mal eine Php Datei anzulegen.
Mit dem JDBC Connector geht es anscheinend nicht aber vielleicht kann man ja auch die Datenbank auf das Handy kopieren und dann dort abfragen oder so ?!

Wenn das gar nicht geht, was benutzt man dann am besten Serverseitig ?

Ich freue mich auf eure Tips.

Lg Dominic
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
RE: Android und MYSQL???
verfasst am 15.05.2012 08:55:24
Wenn du nicht mehrere Php-Files anlegen möchtest übergib doch einfach eine Variable an der du die SQL-Statements unterscheidest. Aber bitte auf keinen Fall den gesamenten SQL-String übergeben, außer du überprüfst eine Injection.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
RE: Android und MYSQL???
verfasst am 15.05.2012 12:19:28
Daniel online
Wenn du nicht mehrere Php-Files anlegen möchtest übergib doch einfach eine Variable an der du die SQL-Statements unterscheidest. Aber bitte auf keinen Fall den gesamenten SQL-String übergeben, außer du überprüfst eine Injection.

Ok das wäre eine Option allerdings müsste ich bei einem Update auf 300 Servern auch immer das php File mit updaten und deswegen wär er halt cool wenn es ohne php geht.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
RE: Android und MYSQL???
verfasst am 16.05.2012 10:45:54
Tach!

Dominic Warzok
[...] wär er halt cool wenn es ohne php geht.

Hast du dazu nicht auch Aussagen gefunden, dass man dazu die MySQL-Client-API irgendwie in das Android-Gerät bekommen muss?

vielleicht kann man ja auch die Datenbank auf das Handy kopieren und dann dort abfragen oder so ?!

Ja, wenn du die Daten in eine SQLite-Datenbank umschreibst. Ansonsten müsstest du dir einen MySQL-Server für Android programmieren.


Felix.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
RE: Android und MYSQL???
verfasst am 16.05.2012 10:49:09 — geändert am 16.05.2012 12:07:45
Felix

Hast du dazu nicht auch Aussagen gefunden, dass man dazu die MySQL-Client-API irgendwie in das Android-Gerät bekommen muss?

Eh ja ich habe grade noch mal Google befragt und ein Beispiel gefunden wie man mit JDBC in Android auf eine Oracle Datenbank zugreift. Naja das muss ich jetzt halt umschreiben... Geht aber nur sehr langsam vorwärts.

Edit:
In dem Thread wird erklärt wie man auf eine Oracle Datenbank zugreift. Ich habe das dann mal auf Java Umgeschrieben. Die Connect Methode sieht jetzt so aus:

1public class ConnectMySql
2{
3
4 private String Username = "android";
5 private String Password = "****";
6 private String Driver = "com.mysql.jdbc.Driver";
7 private final String URL = "jdbc:mysql://serverip:3306/stb";
8 private Connection connection;
9
10 ...
11
12 public void Connect()
13 {
14 try
15 {
16 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());
17 // Class<?> forName = Class.forName(this.Driver);
18 Driver d = (Driver) Class.forName(Driver).newInstance();
19 DriverManager.registerDriver(d);
20 this.connection = DriverManager.getConnection(this.URL, this.Username, this.Password);
21 }
22 catch (Exception e)
23 {
24 e.printStackTrace();
25 System.out.println("Error Connecting with User:" + Username + " and Password:" + Password);
26 }
27 }

Dabei fliegt jetzt immer eine Class not Found Exception:

105-16 10:56:00.400: W/System.err(1556): java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
205-16 10:56:00.410: W/System.err(1556): at java.lang.Class.classForName(Native Method)
305-16 10:56:00.410: W/System.err(1556): at java.lang.Class.forName(Class.java:227)
405-16 10:56:00.410: W/System.err(1556): at java.lang.Class.forName(Class.java:174)
505-16 10:56:00.410: W/System.err(1556): at de.xplace.iptv.ConnectMySql.Connect(ConnectMySql.java:72)
605-16 10:56:00.410: W/System.err(1556): at de.xplace.iptv.ConnectMySql.<init>(ConnectMySql.java:23)
705-16 10:56:00.420: W/System.err(1556): at de.xplace.iptv.VideoStreamActivity.openDialog(VideoStreamActivity.java:116)
805-16 10:56:00.420: W/System.err(1556): at java.lang.reflect.Method.invokeNative(Native Method)
905-16 10:56:00.420: W/System.err(1556): at java.lang.reflect.Method.invoke(Method.java:491)
1005-16 10:56:00.420: W/System.err(1556): at android.view.View$1.onClick(View.java:2678)
1105-16 10:56:00.420: W/System.err(1556): at android.view.View.performClick(View.java:3110)
1205-16 10:56:00.420: W/System.err(1556): at android.view.View$PerformClick.run(View.java:11934)
1305-16 10:56:00.430: W/System.err(1556): at android.os.Handler.handleCallback(Handler.java:587)
1405-16 10:56:00.430: W/System.err(1556): at android.os.Handler.dispatchMessage(Handler.java:92)
1505-16 10:56:00.430: W/System.err(1556): at android.os.Looper.loop(Looper.java:132)
1605-16 10:56:00.430: W/System.err(1556): at android.app.ActivityThread.main(ActivityThread.java:4157)
1705-16 10:56:00.430: W/System.err(1556): at java.lang.reflect.Method.invokeNative(Native Method)
1805-16 10:56:00.430: W/System.err(1556): at java.lang.reflect.Method.invoke(Method.java:491)
1905-16 10:56:00.430: W/System.err(1556): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
2005-16 10:56:00.430: W/System.err(1556): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
2105-16 10:56:00.430: W/System.err(1556): at dalvik.system.NativeStart.main(Native Method)
2205-16 10:56:00.430: W/System.err(1556): Caused by: java.lang.NoClassDefFoundError: com.mysql.jdbc.Driver
2305-16 10:56:00.430: W/System.err(1556): ... 20 more
2405-16 10:56:00.430: W/System.err(1556): Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver in loader dalvik.system.PathClassLoader[/data/app/de.xplace.iptv-1.apk]
2505-16 10:56:00.440: W/System.err(1556): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:251)
2605-16 10:56:00.440: W/System.err(1556): at java.lang.ClassLoader.loadClass(ClassLoader.java:540)
2705-16 10:56:00.440: W/System.err(1556): at java.lang.ClassLoader.loadClass(ClassLoader.java:500)
2805-16 10:56:00.440: W/System.err(1556): ... 20 more

Hat jemand von euch eine Idee wie man die wegbekommt ?

Lg
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
RE: Android und MYSQL???
verfasst am 16.05.2012 12:09:48
Also nach ein paar Anfragen geht es jetzt. Wichtig ist der Ordner in dem das JDBC-Jar liegt muss libs heißen und nicht lib.

Ansonsten noch haufenweise Berechtigungen auf unserem Server geändert und jetzt geht es :D


Vielen Dank für eure Tips
Antworten mit Zitat Antworten Link +1     (1 Stimme)