Java/Android経由でMySqlデータベースへの接続を確立する際に問題があります。ネットワーク上のWindows7コンピュータにデータベースファイル(MyDatabase.db)があります。私が別のWindows7コンピュータから開発しているとき(ファイルはWindowsエクスプローラからアクセス可能で、SQLDatabaseExplorer経由でデータベースに変更を加えることができます)、Eclipseの次のコードは動作しますが、Galaxyタブの "DriverManager" getConnection() "はnullを返します。"DriverManager.getConnection"メソッドのNullPointerException
のSQLExceptionがLogCatにログイン try {
String url = "http://192.168.178.21/Users/test/userdata/Database/MyDatabase.db";
Class.forName ("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection (url);
System.out.println ("Database connection established");
} catch (SQLException e) {
Log.d("SQLException", "e.toString()");
}
は次のとおりです。
java.sql.SQLException: path to '//192.168.178.21/Users/test/userdata/Database/MyDatabase.db': '/192.168.178.21' does not exist
私は私の問題は、URL文字列であると思いますか...?しかし、私はそれをどのように変更するかを理解していないので、接続を確立することができます。任意の助け
おかげで、 ティム
EDIT:これまでのあなたの助けのための ありがとう!私は昨日、自分のコードに目を通さずに、昨日質問を書いてきました...私はたくさんのものが混じっているので、残念です...それはMySqlデータベースではなくsqliteデータベースです...しかし、私はコーディングでそれほど変わらないと思います。私はjdbcのsqliteドライバを使用しています。 Java-Eclipseプロジェクトで以下の行を開始すると、すべて正常に動作し、接続が確立されます。しかし、私のデバイス上ではまだNullpointerを持っています...
昨日私はあなたのアドバイスに合うように自分のコードを変更しました。しかし、問題は依然として抵抗しています...いくつかの権利やネットワーク設定と関係なく、DB-FileをAndroiddeviceにコピーして、次のコード行で直接接続しようとしました:
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn = DriverManager.getConnection("jdbc:sqlite://mnt/sdcard/MyVideos34.db");
if (conn == null) {
Log.d("ConnectionError", "Connection is null");
return;
}
ここでもgetConnectionはNullPointerをスローしますが、理由はわかりません。なぜ誰かが接続がEclipseから確立でき、Androiddeviceで失敗するという仮定を持っていましたか?私は間違ったドライバを持っていて、デバイスからは動作しませんが、Eclipseから...できますか?
ありがとうございます!ホスト名が指定されていない場合
の可能重複[ServerDatabaseでデータをシンクロさせる方法は?](http://stackoverflow.com/questions/9998519/how-to-syncronize-data-with-a-serverdatabase) – Snicolas
使用 'のgetConnection (URL、ユーザ名、パスワード) 'の代わりに' getConnection(url); ' –