AndroidStudioのコンピューター上のデータベースに接続する
Aug 25 2020
私は現在、AndroidStudioでプロジェクトに取り組んでいます。私は自分のコンピューター上に情報でいっぱいのデータベースを作成しました、そして私は私のプログラムがそのデータベースに特別に接続することを望みました。
しかし、それは私にはうまくいかないようです。テストの目的で、コードが機能するかどうかを確認するためのテストデータベースを作成しました。これは次のようになります:(テーブル/他のデータベース関連メソッドのcreateステートメントをわざわざ入れていません)
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "sample_database";
public SampleDBSQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
...
}
@Override
public void onUpgrade(SQLiteDatabase db) {
...
}
}
これに関する助けをいただければ幸いです。調べてみると、リモートサーバー上のsqliteデータベースに接続するための回答が得られました。
回答
ThomasMorris Aug 25 2020 at 07:49
質問が何であるかは完全にはわかりませんが、モバイルアプリでSQLにデータを書き込むことができるデータベースヘルパークラスの例を次に示します。
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME ="Database.db";
// Database Version
private static final int DATABASE_VERSION = 1;
public static final String TABLE = "TABLE";
public static final String COL1 = "ID",COL2 = "D2", COL3 = "D3";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// creating required tables
String CREATED_TABLE = "CREATE TABLE " + TABLE + " (ID INTEGER PRIMARY KEY, " +
"D1 TEXT, D2 TEXT)";
db.execSQL(CREATED_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// on upgrade drop older tables
db.execSQL("DROP TABLE IF EXISTS " + TABLE);
onCreate(db);
}
public boolean addData_Sensor_Board(String d1, String d2){
SQLiteDatabase db = this.getWritableDatabase();//Enable the database to be written to
ContentValues contentValues = new ContentValues();//Setup the data input note COL1 is for the ID
contentValues.put(COL2,d1);//2
contentValues.put(COL3,22);//3
long result = db.insert(TABLE,null,contentValues);//Check to see if pass in has been successful and pass in the data on this line via the pass in of content values
if(result == -1){//Returned false when inputting data to the database
return false;
}
else{
return true;//No error
}
}
public Cursor showData(){//Used to locate the data inside the database
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM " + TABLE;
Cursor data = db.rawQuery(selectQuery, null);
return data;
}
public void delete_table(){//Clears the entire database
SQLiteDatabase db = this.getWritableDatabase();
String clearDB = "DELETE FROM "+ TABLE;
db.execSQL(clearDB);
}
}
ZsoltBoldizsár Aug 25 2020 at 09:32
私の知る限り、これを行う簡単な方法はありませんが、Florina Muntenescuは、事前に入力されたデータベースをRoomを使用してアプリにロードする方法についてこのすばらしいブログ投稿を書きました。
データベースが正常に読み込まれたら、Android Studio 4.1を使用して、組み込みのデータベースインスペクターを使用してデータベースを操作できます(Android Gradleプラグインを4.1.0以降に更新する必要もあります)。