Permalänk
Medlem

Android App -> MYSQL databas

Tjenare Sweclockers!
Jag håller för tillfället på med en Android App, och har den senaste veckan suttit timmarna in och timmarna ut och letat och testat guider om hur man gör för att få kontakt och hämta data ur sin MYSQL databas, men inte lyckats och dom flesta guider är samma och får samma fel dock finns det inga svar hur man fixar det och har inte heller lyckats fixa det på egen hand.
Är det någon snäll själ som en gång för alla har lust att hjälpa mig med att fixa en databas koppling?
Tack på förhand!
/CSGAM3R

Permalänk
Medlem

Är du säker på att din app ska ha kontakt med databasen direkt och inte ha något imellan som exempelvis PHP? Enda eventuella möjliga anledningen jag kan se att ha direktkontakt är om det är ett MySQL-administreringsprogram.

Permalänk
Visa signatur

all work and no play makes jack a dull boy

Permalänk
Hedersmedlem
  • Var kör du databasen?

  • Kan du ansluta med en annan klient via en vanlig dator?

  • Vad får du för felmeddelande?

  • Vad har du försökt?

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av iXam:

Är du säker på att din app ska ha kontakt med databasen direkt och inte ha något imellan som exempelvis PHP? Enda eventuella möjliga anledningen jag kan se att ha direktkontakt är om det är ett MySQL-administreringsprogram.

Jo jag tror att det är ända möjliga sättet dock har jag inte fått det att fungera ändå.

Denna fungerade inte, iaf inte för min del... Lyckades inte få ut något värde ur databasen, fick denna error när jag försökte "Unfortionatly, the program have stopped".

Skrivet av phz:
  • Var kör du databasen?

  • Kan du ansluta med en annan klient via en vanlig dator?

  • Vad får du för felmeddelande?

  • Vad har du försökt?

Jag kör databasen lokalt just nu, på WAMP server. Jag läste att man inte som url kan ange localhost/blablabla, så jag använder min IP där istället vilket fungerar när jag skriver in den i Chrome.
Nej det kan jag inte då den inte ligger uppe.
Testat x antal olika guider och ingen har visat sig fungera så lite olika felmeddelanden beroende på guide.
Har försökt det mesta, med php, utan php etc..

Permalänk
Medlem
Skrivet av CSGAM3R:

Jo jag tror att det är ända möjliga sättet dock har jag inte fått det att fungera ändå.

Denna fungerade inte, iaf inte för min del... Lyckades inte få ut något värde ur databasen, fick denna error när jag försökte "Unfortionatly, the program have stopped".

Jag kör databasen lokalt just nu, på WAMP server. Jag läste att man inte som url kan ange localhost/blablabla, så jag använder min IP där istället vilket fungerar när jag skriver in den i Chrome.
Nej det kan jag inte då den inte ligger uppe.
Testat x antal olika guider och ingen har visat sig fungera så lite olika felmeddelanden beroende på guide.
Har försökt det mesta, med php, utan php etc..

Tänk på att din externa IP (antar att du sitter bakom en NAT router) inte kommer att fungera utan portforwarding, vad du letar efter för IP är nånting i stil med 192.168.X.X

Visa signatur

NZXT Phantom 410 (Vit) | i5 3570k@4.2GHz | Asus P8Z77-V LE | Corsair Vengeance LP 1600MHz 16GB | Gigabyte GTX 670 Windforce OC @1GHz | Seagate 600 480GB | Corsair HX750 | Cooler Master 212 Evo

Permalänk
Medlem
Skrivet av Cheesier:

Tänk på att din externa IP (antar att du sitter bakom en NAT router) inte kommer att fungera utan portforwarding, vad du letar efter för IP är nånting i stil med 192.168.X.X

Just nu använder jag 192.168.0.1.

Kan skicka med min tillfälliga kod ifall någon är hajj på sådan och har lust att ta en titt.

package com.example.dbtestar; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Connection connection = null; try { // Load the JDBC driver String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver Class.forName(driverName); // Create a connection to the database String serverName = "192.168.0.1"; String mydatabase = "tutorial"; String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url String username = "root"; String password = "test"; connection = DriverManager.getConnection(url, username, password); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); TextView txt = (TextView) findViewById(R.id.test); txt.setText(rs.toString()); } catch (ClassNotFoundException e) { // Could not find the database driver } catch (SQLException e) { // Could not connect to the database } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } }

Permalänk
Medlem

MySQL servern configurerad för att svara på din inlogging där mot den hosten?

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem
Skrivet av MugiMugi:

MySQL servern configurerad för att svara på din inlogging där mot den hosten?

Hur menar du då?

Permalänk
Medlem
Skrivet av CSGAM3R:

Hur menar du då?

Lyssnar databasen på port 3306 för externa connections och inte bara 127.0.0.1 och har du satt grants så du tillåter inkommande connections från de externa eller interna IP-adresser du använder? Hur som helst är jag säker på att du INTE vill kommunicera direkt med databasen på detta sättet såvida du *inte* ska sprida din app. Därför du öppnar upp för att folk ska kunna göra lite vad som helst elakt mot din databas, speciellt när du itne verkar så kunnig (inget ont om det!).

Permalänk
Medlem
Skrivet av CSGAM3R:

Just nu använder jag 192.168.0.1.

Är nog fel IP, 192.168.0.1 brukar vara routern, testa att köra ipconfig i kommandotolken och ta det som står efter IPv4 saken, 192.168.0.X

Visa signatur

NZXT Phantom 410 (Vit) | i5 3570k@4.2GHz | Asus P8Z77-V LE | Corsair Vengeance LP 1600MHz 16GB | Gigabyte GTX 670 Windforce OC @1GHz | Seagate 600 480GB | Corsair HX750 | Cooler Master 212 Evo

Permalänk
Medlem
Skrivet av Cheesier:

Är nog fel IP, 192.168.0.1 brukar vara routern, testa att köra ipconfig i kommandotolken och ta det som står efter IPv4 saken, 192.168.0.X

Japp det är den IP jag får fram då.

Permalänk
Medlem
Skrivet av CSGAM3R:

Japp det är den IP jag får fram då.

Testa att köra den i webbläsaren, om det är rätt kommer antagligen defaultsidan för Apache (eller filer du lagt där). Är det fel kommer du till routen. För du hade ju WAMP sa du.

Visa signatur

NZXT Phantom 410 (Vit) | i5 3570k@4.2GHz | Asus P8Z77-V LE | Corsair Vengeance LP 1600MHz 16GB | Gigabyte GTX 670 Windforce OC @1GHz | Seagate 600 480GB | Corsair HX750 | Cooler Master 212 Evo

Permalänk
Medlem
Skrivet av Cheesier:

Testa att köra den i webbläsaren, om det är rätt kommer antagligen defaultsidan för Apache (eller filer du lagt där). Är det fel kommer du till routen. För du hade ju WAMP sa du.

Har även testat nu med en riktig sida som ligger uppe på webhotell, fungerar inte där heller så förstår inte var felet ligger...
Tack för svaren btw.

Permalänk
Medlem
Skrivet av CSGAM3R:

...
Denna fungerade inte, iaf inte för min del... Lyckades inte få ut något värde ur databasen, fick denna error när jag försökte "Unfortionatly, the program have stopped".
...

Det är en fördel om du faktiskt har USBkabeln inkopplad till telefonen med Debugging enabled samt LogCat uppe så du ser vad Appen loggar för stacktrace när den kraschar. Kanske skulle börja med lite Android basics innan du börjar gå mot databaser etc. -.-

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk

Jag brukar tycka det är smidigare att lägga backend i ett server-sidespråk som PHP och sedan låta appen vara ren front-end. Då kan du använda JSON för att hämta och skicka data mot backend som i sin tur pratar med databasen.