2

使用中はユーザーがインターネットにアクセスできないため、Androidアプリケーションでデータベースを使用する必要があります。そのために、SQLLiteを使用してJDBCを介してデータベースに接続したいと思います。いくつかの調査の結果、Android APIでサポートされていないことがわかりましたが、それを実行するプロジェクトがあります:SQLDroid

jarをダウンロードしてメインのチュートリアルに従いましたがjava.sql.SQLException: No suitable driver 、DriverManagerとの接続を作成したいときに、SQL例外が発生し続けます。

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();
        }


    }
4

2 に答える 2

2

宣言しましたか:

Class.forName("SQLite.JDBCDriver");

接続を宣言する前に?

編集:

申し訳ありませんが、ネイティブのAndroidJDBCドライバーを使用したいと思いました。この場合、それは私のアプローチだったでしょう。

ただし、独自のドライバーを提供するSQLDroidライブラリを使用しているため、最初にsmthでドライバーを登録する必要があります。お気に入り:

Class.forName("org.sqldroid.SqldroidDriver").newInstance();
于 2011-10-27T14:05:40.380 に答える
2

sqldroid-1.0.0RC1.jarで私は使用しています

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

ドライバーがdrivermanagerを介してロードできる場合と、失敗する場合があります。

作業として、私はSQLDroidDriverを直接使用しており、これは常に機能します。

con = new org.sqldroid.SQLDroidDriver().connect(url , new Properties());
于 2013-02-19T15:02:09.190 に答える