MySQL Nutzen für Android App

G

GermanDev

Neues Mitglied
0
Guten Tag,

ich programmiere gerade mithilfe des Android Studios eine Android App, ich muss zugeben das dies meine erste App ist mit Android zuvor habe ich immer nur Java programmiert. Ich möchte eine art Forumapp programmieren. Ich komme mit dem programmieren sehr gut klar. Ich möchte die Daten in einer MySQL Datenbank abspeichern, da ich in java immer damit programmiert habe, wenn ich mich nun zur Datenbank verbinden möchte über meine App funktioniert dies aber nicht, da dieser Fehler kommt:

Code:
W/System.err: java.sql.SQLException: No suitable driver
W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:186)
W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:213)
W/System.err:     at mysql.germandev.de.ultimate_stupedia.MySQL.connect(MySQL.java:34)
W/System.err:     at mysql.germandev.de.ultimate_stupedia.MySQL.<init>(MySQL.java:21)
W/System.err:     at germandev.de.ultimate_stupedia.MainActivity.onCreate(MainActivity.java:30)
W/System.err:     at android.app.Activity.performCreate(Activity.java:5458)
W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
W/System.err:     at android.app.ActivityThread.access$900(ActivityThread.java:174)
W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err:     at android.os.Looper.loop(Looper.java:146)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5593)
W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err:     at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
W/System.err:     at dalvik.system.NativeStart.main(Native Method)
I/System.out: [MySQL] Verbinden fehlgeschlagen!


Ich habe exakt die gleiche MySQL Klasse genommen, wie ich sie früher verwendet habe für ein Java Programm, dort hat sich die verbindung hergestellt, hier funktioniert es aber nicht.

Code:
package mysql.germandev.de.ultimate_stupedia;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import butterknife.ButterKnife;

public class MySQL {
    private String host = "privat";
    private String database = "privat;
    private String user = "privat";
    private String password = "privat";

    private Connection con;

    public MySQL() {

        connect();
    }

    public MySQL(String host, String database, String user) {
        this.host = host;
        this.database = database;
        this.user = user;

        connect();
    }

    public void connect() {
        try {
            con = DriverManager.getConnection("jdbc:mysql://" + host + ":3306/" + database + "?autoReconnect=true", user, password);
            System.out.println("[MySQL] Erfolgreich verbunden.");
        } catch (SQLException ex) {
            ex.printStackTrace();
            System.out.println("[MySQL] Verbinden fehlgeschlagen!");
        }
    }

    public void close() {
        try {
            if(con != null) {
                con.close();
            }
        } catch(SQLException ex) {
            ex.printStackTrace();
        }
    }

    public ResultSet query(String qry) {
        ResultSet rs = null;

        try {
            Statement st = con.createStatement();
            rs = st.executeQuery(qry);
        } catch(SQLException ex) {
            connect();
            ex.printStackTrace();
        }

        return rs;
    }

    public void update(String qry) {
        try {
            Statement st = con.createStatement();
            st.executeUpdate(qry);
            st.close();
        } catch(SQLException ex) {
            connect();
            ex.printStackTrace();
        }
    }

    public Connection getConnection(){
        return con;

    }

}

MainActivity

Code:
package germandev.de.ultimate_stupedia;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import butterknife.ButterKnife;
import butterknife.OnClick;
import mysql.germandev.de.ultimate_stupedia.MySQL;

import static germandev.de.ultimate_stupedia.R.layout.activity_kategories;

public class MainActivity extends AppCompatActivity {

    public static boolean connected;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        TextView view = (TextView) findViewById(R.id.main_connect);
        new MySQL();

        if(connected == false) {
            view.setText("Keine Internetverbindung");
        } else {
            view.setCursorVisible(false);
        }
    }

    @OnClick(R.id.main_kategories)
    void klickKategories() {
        setContentView(activity_kategories);
    }

}



Passwort etz. ist auch richtig.


Mich würde es freuen wenn mir jemand von euch mir sagen kann was ich beachten muss oder was ich falsch gemacht habe

Mit freundlichen Grüßen

Fabi | GermanDev
 
Hallo GermanDev,

unter Android musst du erst mal eine URL-Connection grundsätzlich in einem Thread aufbauen.
Dann solltest du die Klasse UrlConnection verwenden, oder direkt Sockets
So, wie du das da oben hast , wird das leider nicht funktionieren.

Dann sehe ich, dass du direkt auf 3306 zugreiffst, ohne jeglichen PHP / PDO Wrapper.
ich möchte ja hoffen , dass dieser Vorgang nur im lokalen Netz stattfindet ....
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: GermanDev
@swa00 Könntest du mir vlt etwas besser beschreiben was ich machen muss
 

Ähnliche Themen

B
Antworten
4
Aufrufe
494
bb321
B
netfreak
  • netfreak
Antworten
10
Aufrufe
460
netfreak
netfreak
W
Antworten
2
Aufrufe
744
rene3006
R
Zurück
Oben Unten