sql >> Database teknologi >  >> RDS >> Mysql

Opret en samlet forbindelse til MySQL i Android

Dette spørgsmål er 6 år gammelt, og Mark har ret i, at i næsten alle scenarier, du kan komme i tanke om, er JDBC på Android omtrent lige så fornuftigt som at prøve at bruge en brødrister i badet. Men nogle gange gør vi ting, fordi vi kan og ikke, fordi vi nødvendigvis burde, og i dag havde jeg en berettiget grund til at ville gøre dette (for en specifik meget niche-app, der kører i et usædvanligt miljø), og det var sådan jeg fandt dette spørgsmål.

Adressering af NoClassDefFoundError for det første grunden til, at den ikke fanges af catch blokering er, fordi det er en Error ikke en Exception . Begge Error og Exception arv fra Throwable , så du kunne fange det i stedet:

catch (Throwable t)
{
    // This will catch NoClassDefFoundError
}

Jeg tror, ​​at det ikke er MySqlDataSource at den ikke kan finde, men en af ​​de klasser eller grænseflader, som den afhænger af - i mit tilfælde var det javax.naming.Referenceable . Android leverer ikke javax.naming pakke, så at prøve at bruge pooling-funktionerne i Connector/J JDBC-driveren til MySQL vil ikke bringe dig ret langt (du kan prøve at give de manglende afhængigheder, men den vej fører sandsynligvis til vanvid).

I stedet vil du sandsynligvis have mere held med en tredjeparts forbindelsespuljeimplementering. Der er forskellige Java-biblioteker til at gøre dette. Nogle af dem fungerer på Android. En, som jeg har bekræftet virker, er HikariCP . Der er instruktioner til at konfigurere det her og specifikt for MySQL, her .




  1. Hvordan henter man data fra 2 tabeller?

  2. Caching med php-fil

  3. Sørg for, at markøren er initialiseret korrekt, før du får adgang til data fra den

  4. Sådan udskrives en MySQL-databasetabel i PHP ved hjælp af PDO