1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

SQLite Daten auf MySQL übertragen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Dakine, 12.03.2012.

  1. Dakine, 12.03.2012 #1
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    Hallo ich habe eine App in der ich bisher Daten in die interne Sqllite Datenbank schreiben,lesen,verändern kann. Jetzt möchte ich diese Daten in eine mySql Datenbank auf dem PC übertragen.
    Hier mein Code der auch in einem normalen Javaprojekt funktioniert:

    package app.kira;

    import java.sql.*;

    import java.sql.DriverManager;

    public class MyConnection {

    private static Connection conn = null;

    private MyConnection() {
    }

    public static Connection connect() throws ConnectException {
    if (conn == null) {
    try {

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn = DriverManager.getConnection(
    "jdbc:mysql://localhost/dbbase", "root", "root");
    System.err.println("connected");

    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    return conn;
    }

    public static void disconnect() throws DisconnectException {
    try {
    conn.close();
    } catch (Exception e) {
    throw new DisconnectException();
    }
    }
    }



    package app.kira;


    import java.sql.Connection;
    import java.sql.PreparedStatement;



    public class Application{

    private Connection conn;
    private PreparedStatement preparedStatement;

    public Application() throws ConnectException, java.sql.SQLException {
    conn=MyConnection.connect();
    insert(5555,6666);
    }


    public void insert(int id,int nr) throws ConnectException, java.sql.SQLException {
    String str = "insert into dbbase.fodata"
    + "(_id,nr)"
    + "values( ?, ?)";

    // String str="INSERT INTO `dbbase`.`fodata` (`_id`, `nr`) VALUES (?, ?)";
    try {
    preparedStatement = conn.prepareStatement(str);
    } catch (Exception e) {
    throw new ConnectException();
    }
    try {
    preparedStatement.setInt(1, id);
    preparedStatement.setInt(2,nr);
    preparedStatement.executeUpdate();
    System.out.println("Eintrag added");
    } catch (Exception e) {
    e.printStackTrace();
    }

    }


    }



    }

    -----------------------------------------------------------------------
    In meiner StartActivity rufe ich dann
    "Application app=new Application(); "
    auf.
    Es kommt keine Fehlermeldung aber es wird auch nichts in die Datenbank des PCs eingefügt. Ich vermute es liegt an der Host Ip-Adresse die momentan localhost ist. Ich habe es bereits mit der IP-Adresse von meinem PC versucht(192.168.2.100).

    Wie kann ich auf die DB des PCs zugreifen?
     
  2. snowman2, 12.03.2012 #2
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Localhost ist doch das Android-Gerät selber!? Und was willst du damit bezwecken?
     
  3. Dakine, 12.03.2012 #3
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    Danke schon mal für die fixe Antwort ;)
    Ja im Prinzip schon. Ich will vom Android-Gerät auf eine Datenbank, welche auf meinen pc läuft zugreifen(verändern). Ich hatte es auch schon mit der IP meines Pc's versucht ( 192.168.2.100) statt localhost.
     
  4. snowman2, 12.03.2012 #4
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Ist der MySQL Server gestartet? Firewall? Kannst du von einem anderen PC auf den MySQL-Server zugreifen?
     
  5. Dakine, 13.03.2012 #5
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    Ja, der MySQL Server ist gestartet. Ich habe auch schon mit einen anderen Computer eine neue Zeile in einer Tabelle hinzugefügt. Nur aus der App funktioniert es nicht.

    Aus meiner Activity wird aus irgend einem Grund die Klasse Application(die für die Verbindung verantwortlich ist) nicht aufgerufen. Kann ich in einer Activity nicht ohne weiteres einfach eine andere normale java Klasse aufrufen(eine Klasse die keine Activity ist)?

    mfg Dakine ;), danke schon mal!!!!
     
  6. Dakine, 15.03.2012 #6
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    also. hab jetzt herausgefunden das es an der Connection liegt.

    conn = DriverManager.getConnection(
    "jdbc:mysql://192.168.2.100/dbbase", "root", "root");

    Ich vermute es liegt an den treibern für jdbc. Habe schon einige ausprobiert aber keiner hat bisher funktioniert. Hat jemand Erfahrung mit jdbc connection auf sql von einem android gerät? wäre sehr hilfreich!
     
  7. Dakine, 15.03.2012 #7
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    achso ... username und passwort stimmt natürlich und sind andere die oben stehen. also nicht user: "root" pw: "root".
    was ich noch hinzufügen wollte. Von meinem PC aus funktioniert das Programm, welches noch nicht in eine Android app implementiert ist wunderbar! nur wenn ich das selbe programm in android implementier funktioniert es nicht. =(
     
  8. Sentence, 15.03.2012 #8
    Sentence

    Sentence Erfahrener Benutzer

    Beiträge:
    242
    Erhaltene Danke:
    51
    Registriert seit:
    27.01.2011
    Phone:
    S3, S6 Edge
    Dakine bedankt sich.
  9. Dakine, 15.03.2012 #9
    Dakine

    Dakine Threadstarter App-Anbieter (In-App)

    Beiträge:
    50
    Erhaltene Danke:
    4
    Registriert seit:
    12.03.2012
    gibt es hierzu evtl ein android spezifisch gut erklärtes Tutorial? Ein deutsches wäre natürlich sehr gut. habe bisher nur komische gefunden :D danke im vorraus! ;)
     

Diese Seite empfehlen