2016-08-04 4 views
0

私はAndroidアプリケーションで作業しているので、Javaを使用してMySQLデータベースにデータをアップロードしようとしています。これまでのところ、このコードはコンパイルされて実行されますが、私のデータベースには何もアップロードされません。私はどこにでもデータベースを "ストリークに"アクセスしていないので、私は仮定しますが、私はこれを解決する方法を探し回ったときに何も見つけられませんでした。コードのJavaでSQLクエリにデータベースを指定する方法

スニペット私はあなたがあなたのケースでAndroidデバイスである、localhostに接続しようとしている

String addStreakName = chooseName.getText().toString(); 
String addCategory = prefs.getString("Category", ""); 
String addToday = new SimpleDateFormat("dd-MM-yyyy").format(new Date()); 
if(prefs.getInt("todayOrChosen", 1) == 1){ 
     int addStartedZero = 0; 
     streakList.add(new Streak(addStreakName, addCategory, addToday, addStartedZero)); 

try { 
     Connection con = DriverManager.getConnection("127.0.0.1", "[myusername]", "[mypassword]"); 
     Statement st = con.createStatement(); 
     st.executeUpdate("INSERT INTO `users`(userId, addStreakName,addCategory,addToday,addStartedZero) VALUE ('"+addStreakName+"', '"+addCategory+"', '"+addToday+"', '"+addStartedZero+"', '"+userID+"')"); 
     } catch (SQLException e) { 
        e.printStackTrace(); 
     } 
    } 
+0

DBは、別のマシン上にあるか、あなたはAndroidデバイス上でのSQLiteを使用しようとしていますか? – Taelsin

+0

私はAndroidデバイス上でSQLiteを使用しようとしていますが、これはちょっと分かりません。だから私はこのデータをSQLiteサーバーに保存し、別のクラスを取得する方法はありますか?私が試したすべてがエラーを投げています –

+0

私は自分の必要性が私はただテキストファイルを使用することができますが、[this](http://www.tutorialspoint.com/android/android_sqlite_database .htm)を出してください。それはまっすぐ前方に見えます。 – Taelsin

答えて

1

をアップロードしようとしています。私はあなたのデバイス上で実行されているMySQLサーバがないと確信しています。したがって、あなたが見る問題です。 JDBCドライバを使用してMySQLサーバに接続できますが、実際には推奨しません。モバイルアプリはユーザーのデバイスに保存されており、データベースサーバーに直接アクセスすることはあまりお勧めできません。ローカルデータベースが必要な場合は、SQLite、Couchbase Lite、Firebase、Realmなどを使用できます。サーバーと同期する場合は、アプリケーションサーバーを実装し、REST経由で同期するか、 Couchbaseのライト+ SyncのゲートウェイまたはGoogleのFirebase

よろしく、
ウラジミール

+0

あなたの答えは正しいですが、私はアンドロイドがモバイルデバイス自体に小さなSQLiteデータベースを持っていることを指摘したいと思います。 – Taelsin

+0

でも、Android上でネイティブに使用できる他のいくつかの永続ストレージソリューションについても触れました。 Carter Kleinは、MySQLに接続し、実際にMySQLをSQLiteと混同する方法についてのJavaチュートリアルに従っている可能性があります –

関連する問題