ввод данных в базу данных Android - PullRequest
2 голосов
/ 25 июня 2010

В настоящее время я работаю над Java-программой, которая вставляет данные Excel в базу данных Android (sqlite).

, когда я помещаю TestDB (sqlilte db) в диск c: он работает.

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

Но он не будет работать на базе данных Android (эмулятор).База данных была создана в Android.

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

Я предполагаю, что tcp не так.как мне исправить это?

Ответы [ 2 ]

1 голос
/ 25 июня 2010

Боюсь, вы не можете подключиться к базе данных эмулятора напрямую.

Итак, извлеките файл базы данных, отредактируйте его и верните обратно:

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

тогда

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

и в конце

adb push c:\TestDB /data/data/com.app.das/databases/TestDB 
0 голосов
/ 11 октября 2014

, поскольку драйвер на ПК не работает в Android, существует две разные системы!
Если вы хотите использовать JDBC для доступа к базе данных в Android, вы должны написать свой собственный драйвер, например https://github.com/SQLDroid/SQLDroid

тогда вы можете использовать вот так:

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