SQLDroid JDBC драйвер для Android - PullRequest
1 голос
/ 27 октября 2011

Мне нужно использовать базу данных в приложении Android, так как при использовании у пользователя не будет доступа в Интернет. Для этого я хочу установить соединение с базой данных через JDBC с SQL Lite. После некоторых исследований я обнаружил, что это не поддерживается Android API, но есть проект, который делает именно это: SQLDroid

Я скачал фляги и следовал основному руководству, но продолжаю получать исключение sql java.sql.SQLException: No suitable driver , когда я хочу создать соединение с DriverManager.

String url = "jdbc:sqldroid:" + "/data/data/com.mypackage.droid" + "/main.sqlite";
Connection con = DriverManager.getConnection(url);

Что я делаю не так? Кстати, моя активность называется AndroidActivity, а пакет называется com.mypackage.droid.

Редактировать: Полный код:

public class AndroidActivity extends Activity {


    String url = "jdbc:sqldroid:" + "/data/data/com.mypackage.droid" + "/main.sqlite";
    static Connection con;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
            Class.forName("SQLite.JDBCDriver");
            con = DriverManager.getConnection(url);
        } catch (java.sql.SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Вы объявили:

Class.forName("SQLite.JDBCDriver");

до объявления соединения?

РЕДАКТИРОВАТЬ:

Извините, я подумал, что вы хотите использоватьродной драйвер JDBC для Android.В этом случае это был бы мой подход.

Но так как вы используете библиотеку SQLDroid, которая приносит собственный драйвер, вы должны сначала зарегистрировать драйвер по smth.как:

Class.forName("org.sqldroid.SqldroidDriver").newInstance();
1 голос
/ 19 февраля 2013

С sqldroid-1.0.0RC1.jar я использую

Class.forName("org.sqldroid.SqldroidDriver");
con = DriverManager.getConnection(url);

Иногда драйвер может загружаться через менеджер драйверов, а иногда это не удается.

Как рабочий человек, я напрямую использую SQLDroidDriver, и это работает постоянно.

con = new org.sqldroid.SQLDroidDriver().connect(url , new Properties());
...