2011-10-27 35 views
1

使用時にユーザーがインターネットにアクセスできないため、Androidアプリケーションでデータベースを使用する必要があります。そのために、SQL Liteを使用してJDBC経由でデータベースに接続したいと考えています。いくつかの研究の後、私はそれがAndroidのAPIでサポートされていないことが判明が、ちょうどそれを行うプロジェクトがあります:SQLDroidAndroid用SQLDroid JDBCドライバ

が、私はjarファイルをダウンロードし、メインチュートリアルに続く、私はjava.sql.SQLException: No suitable driver とき、私のSQL例外を取得しておきます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(); 
     } 


    } 
+0

なぜSQLite-supportでビルドを使用できないのですか? –

+0

グーグルはあなたにそうしないように指示しているので、それは利用可能だが動作しないためです。提供されたリンクで、あなたはそれについて読むことができます。 –

+0

私は、SQLiteデータベースで作業できるSQLiteクラスのビルドを意味しました。 [this](http://developer.android.com/guide/topics/data/data-storage.html#db)を参照してください。 –

答えて

2

はあなたが宣言しました:

Class.forName("SQLite.JDBCDriver"); 

接続を宣言する前に?

編集:私はあなたがネイティブAndroidのJDBCドライバを使用することを、考え

申し訳ありません。この場合、私のアプローチでした。

しかし、独自のドライバを持っているSQLDroidライブラリを使用しているので、まずドライバをsmthで登録する必要があります。以下のような:私は時々、ドライバがDriverManagerの経由で読み込むことができますし、時にはそれが失敗した

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

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

Class.forName("org.sqldroid.SqldroidDriver").newInstance(); 
+1

ありがとう、それは助けて、今、私はjava.lang.ClassNotFoundExceptionを取得しています:SQLite.JDBCDriver –

+0

あなたはどのように接続を確立する完全なコードを投稿できますか? – Dyonisos

+0

質問に追加 –

1

私はSQLDroidDriverを直接使用していますが、これは常に動作します。

con = new org.sqldroid.SQLDroidDriver().connect(url , new Properties()); 
関連する問題