データベースに接続する Android TableLayout の方法は?
Androidでデータベースと接続させるにはTableLayoutを利用する方法があります。
- Androidプロジェクトで、SQLiteOpenHelperを継承したデータベースヘルパークラスを作成します。このクラスでは、データベース名、バージョン、テーブル構造などの情報を定義できます。
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 在这里创建表格
db.execSQL("CREATE TABLE mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 在需要升级数据库版本时执行的操作
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
- その際、アクティビティやフラグメント内でDatabaseHelperをインスタンス化して、getWritableDatabase()メソッドを用いて書き込み可能なデータベースオブジェクトを取得します。
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
- 今すぐ db オブジェクトから SQL ステートメントを発行して、データの追加、更新、または検索を実行できます。一般的なデータベース操作の例を次に示します。
データを挿入する:
ContentValues values = new ContentValues();
values.put("name", "John");
long rowId = db.insert("mytable", null, values);
データを更新する:
ContentValues values = new ContentValues();
values.put("name", "Tom");
int affectedRows = db.update("mytable", values, "id=?", new String[] { "1" });
データの照会
String[] columns = { "id", "name" };
Cursor cursor = db.query("mytable", columns, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
// 处理查询结果
} while (cursor.moveToNext());
}
cursor.close();
データベースを使い終わったら、忘れずにclose()メソッドでデータベース接続を閉じます。
db.close();
上記のサンプルコードは、データベースを TableLayout とつなぐ基本的な方法です。必要に応じて、この方法をもとにデータを検索、追加、削除、修正する、より複雑な操作を行うことができます。