2010-06-25 6 views
2

Je travaille actuellement sur un programme Java qui insère des données Excel dans la base de données android (sqlite). Lorsque je place le TestDB (sqlilte db) dans le lecteur c: cela fonctionne.données d'entrée dans la base de données android

Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\TestDB"); 

Mais cela ne fonctionnera pas sur la base de données android (émulateur). La base de données a été créée dans android.

Connection con = DriverManager.getConnection("jdbc:sqlite://127.0.0.1:5554:/data/data/com.app.das/databases/TestDB"); 

Je suppose que le tcp est faux. comment puis-je réparer?

Répondre

1

Je crains que vous ne puissiez pas vous connecter directement à la base de données de l'émulateur.

fichier de base de données tirer éditons et repoussez:

adb pull /data/data/com.app.das/databases/TestDB c:\TestDB 

puis

Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\TestDB"); 
... do your job ... 

et à la fin

adb push c:\TestDB /data/data/com.app.das/databases/TestDB 
+0

salut gawcio, merci pour votre réponse. Pour mon projet, je dois créer un programme qui pousse directement les données Excel vers la base de données de l'émulateur. Avez-vous d'autres solutions alternatives? – user375977

0

car le pilote dans le PC ne fonctionne pas dans Android, il y a deux systèmes différents!
si vous souhaitez utiliser JDBC pour accéder à la base de données dans Android, vous devez écrire votre propre pilote comme https://github.com/SQLDroid/SQLDroid

alors, vous pouvez utiliser comme ceci:

Class.forName("org.sqldroid.SQLDroidDriver"); 
    Connection conn = DriverManager.getConnection("jdbc:sqldroid://data/data/com.android.providers.telephony/databases/mmssms.db"); 
Questions connexes