Keine Verbindung zwischen Android VM und MySQL-Datenbank

  • 5 Antworten
  • Letztes Antwortdatum
L

likedue

Ambitioniertes Mitglied
1
Hey Leute,

ich habe mich jetzt eine Weile mit der Anbindung an Datenbanken auseinander gesetzt und auch versucht einen ersten Test zu starten.

Ich habe mir eine MySQL Datenbank mit vorgefertigten Tabellen über Xampp angelegt und kann auch im virtuellen Android auf Localhost über den Browser zugreifen.

Jetzt versuche ich etwas in der Datenbank abzulegen, scheitere jedoch an der Anbindung.
Vielleicht könnt Ihr mir ja weiterhelfen.

Ich habe:
Code:
private void setInhaltView(final Eingabe eingabe, boolean b) 
{
	setContentView(R.layout.edit_eingabe);
	menuId = 0;
	((EditText)findViewById(R.id.editEingabe)).setText(eingabe.getEingabe()); 
   	
	findViewById(R.id.editEingabeSubmit).setOnClickListener(new OnClickListener() 
        {
		public void onClick(View view) 
		{
			eingabe.setEingabe(eingabe);
			setContentView(R.layout.Chronik);
				
	        try 
	        {
	        	String hilf1 = eingabe.eingabe;
		        	
  	                Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test/eingabe/); 
	                Statement stmt = (Statement) con.createStatement();
			String insert = "INSERT INTO eingabe VALUES ( null, " + hilf1 + ")"; //null für die generierung einer ID in der Datenbank.
			stmt.executeUpdate(insert);	 
		        stmt.close();
		        con.close();           		   
		 }
		 catch (SQLException e) 
		 {
		    System.out.println("Connect zu eingabe nicht moeglich");
		  }
		 }
	    });
	}


Da ich gerne in weiteren Methoden mit der Datenbank weiterarbeiten möchte habe ich separat die Methode zur Verbindung gesetzt und zwar:

Code:
    public static Connection getMySqlConnection() throws Exception 
    {
        String driver = "org.gjt.mm.mysql.";
        String url = "jdbc:mysql://localhost/test/eingabe/";
        String username = "root";
        String password = "";
        Class.forName(driver); 
        Connection con = DriverManager.getConnection(url, username, password);
        return con;
    }

Habe ich etwas übersehen?
der JDBC - Treiber ist eingebunden.
Logcat wirft mir lediglich meine eigene Exception aus.
Meine Datenbank habe ich über test/eingabe/ angesprochen.

Ich hoffe, dass Ihr mir weiterhelfen könnt!
 
Die Frage ist immer, ob du vom emulator direkt auf die Datenbank gehst/kannst. Ich würde eigtl nicht direkt auf eine Datenbank gehen sondern immer ein php-File o.ä. dazwischen schalten und dieses dann aufrufen.

Soawas nur ass du ins php halt die MySQL Syntaxt packst.
http://adilmukarram.wordpress.com/2011/01/29/sending-and-receiving-data-from-a-php-web-application/

Ich werf dir noch ein paar sachen an den Kopf um Besser google zu können.
- Als Rückgabewert würde ich mit JSOn arbeiten (am Handy über GSON auswerten)
- Parameter kannst du vom Handy via POST oder GET senden
- im php-File lege ich eigtl immer funktionen an und rufe diese anhand des übergebenen modes ab z.b. ?mode=givemelist => (php >File ) function giveMeList()


Viel Spaß! Viel Erfolg!

Grüße Soma
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: likedue
Hey Soma,
danke für die Antwort.

mmmh. ich würde aber trotzdem gerne meine App fertig bringen und das einfach über jdbc laufen lassen.
Gibt es da keine Möglichkeit es so zu testen?
Ich möchte ja für den Anfang lediglich einen String oder irgendeinen anderen Wert einfach mal in meinem Netzwerk in der Datenbank ablegen um zu schauen, wie sich das ganz verhält.
 
Um vom Emulator auf einen Server auf dem Host zu zugreifen, solltest du statt localhost die IP 10.0.2.2 nehmen.
 
  • Danke
Reaktionen: likedue
über "jdbc:mysql://10.0.2.2/eingabe/"; erhalte ich leider auch keinen connect:(
 
1. Ist den die URL nun .../test/eingabe oder nur .../eingabe?
2. Eine Exception abzufangen, bringt eigentlich nur dann was, wenn du sie auch gescheit weiter verarbeitest. Sie mit eine ehr nichtssagenden Meldung "Connect zu eingabe nicht moeglich" zu ersetzen ist kontraproduktiv. Eine SQLException hat meist auch ein reason und SQLState Wert -> SQLException (Java Platform SE 6)
3. Es kann an den eingebundenen MySQL Treiber liegen, bzw. an der Art wie du sie Eingebunden hast. Versuche es mal mit com.mysql.jdbc.Driver, ist der selbe Treiber, du nutzt nur den alten Namen. Lade dir auch eine aktuelle Version des Treibers runter und importiere die jar in dein Projekt.
4. Je nach deiner Host Konfiguration könnte auch eine Firewall die Verbindung nicht zulassen.

Ansonsten mal googlen. Die Suchergebnisse müssten überschaubar sein, da wie soma-web schon schrieb, eine direkt Verbindung von App zum Datenbankserver nicht gerade die gängige Art ist.
 

Ähnliche Themen

M
Antworten
21
Aufrufe
1.403
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
1.001
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
1.029
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
830
mkuz24
M
A
Antworten
5
Aufrufe
707
swa00
swa00
Zurück
Oben Unten