【SQLiteシリーズをプレイ】(四)Androidから提供されたAPI操作SQLiteデータベース
前の「SQLiteシリーズをプレイ」(三)sql文操作SQLiteデータベースでSQLiteデータベースを紹介しました.SQLiteデータベースを操作するには、ユーザーが熟練したsql文スペルとsql文法の熟練によってマスターしなければなりません.実は、Androidでは該当のAPIを提供してデータベースを操作しています.sqlに慣れていなくても、SQLiteデータベースをうまく操作することができます.この記事では、Androidを通じて提供されるAPIのデータベースに対する以下の操作を紹介します.
1.テーブルの作成
2.テーブルの削除
3.データの追加
4.データの変更
5.データの削除
6.照会データ
0.データベースを作成または開く
File dataBaseFile = new File(Environment.getExternalStorageDirectory() + "/sqlite", Contacts.DATABASE_NAME);
if (!dataBaseFile.getParentFile().exists()) {
dataBaseFile.mkdirs();
}
sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase(dataBaseFile, null);
1.テーブルの作成
/**
* 1. user
* user
* * user
* :id
* :name
* :age:
*
* @param v
*/
public void create(View v) {
String sql = "CREATE TABLE " +
"IF NOT EXISTS " +
"user(" +
"id Integer PRIMARY KEY AUTOINCREMENT," +
"name varchar," +
"age Integer)";
sqLiteDatabase.execSQL(sql);
}
私たちは(sqlite 3 info 2).コマンドでデータベースを開けて、コマンドを実行してデータテーブルを確認します.2.テーブルの削除
/**
* 2. user
*
* @param v
*/
public void drop(View v) {
String sql = "DROP TABLE " +
"IF EXISTS " +
"user";
sqLiteDatabase.execSQL(sql);
}
3.データの挿入(追加)
/**
* 3. user
*
* long insert(String table, String nullColumnHack, ContentValues values)
* :
* : values ,
* insert ( ),
* , ,
* ,
* null, 。
* :
* : , -1
*
* @param v
*/
public void insert(View v) {
String table = "user";
ContentValues contentValues = new ContentValues();
contentValues.put("name", " ");
contentValues.put("age", 25);
long num = sqLiteDatabase.insert(table, null, contentValues);
if (num == -1) {
Toast.makeText(this, " ", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, " " + num + " ", Toast.LENGTH_SHORT).show();
}
}
私たちはselect*from userを通じてコマンドを使用して、データベースの内容を確認します.二つのデータを挿入しました.
4.データの変更
/**
* 4. user id 2 “ ”
*
* int update(String table, ContentValues values, String whereClause, String[] whereArgs)
* :
* :
* :
* :
* :
*
* @param v
*/
public void update(View v) {
String table = "user";
ContentValues contentValues = new ContentValues();
contentValues.put("name", " ");
String where = "id=2";
/**
*
*/
sqLiteDatabase.update(table, contentValues, where, null);
/**
*
*/
where = "id=?";
String[] whereArgs = new String[]{"2"};
int num = sqLiteDatabase.update(table, contentValues, where, whereArgs);
Toast.makeText(this, " " + num + " ", Toast.LENGTH_SHORT).show();
}
修正の結果を確認します.ID 2の名前を李四に変更しました.
5.データの削除
/**
* 5. user id 2
*
* int delete(String table, String whereClause, String[] whereArgs)
* :
* :
* :
* :
*
* @param v
*/
public void delete(View v) {
String table = "user";
String where = "id=2";
sqLiteDatabase.delete(table, where, null);
where = "id=?";
String[] whereArgs = new String[]{"3"};
int num = sqLiteDatabase.delete(table, where, whereArgs);
Toast.makeText(this, " " + num + " ", Toast.LENGTH_SHORT).show();
}
削除の結果を確認します.IDが2のデータを削除しました.
6.照会データ
/**
* 6.
*
* Cursor query(String table, String[] columns, String selection,String[] selectionArgs, String groupBy, String having,String orderBy)
* :
* :
* :
* :
* :
* :
* :
* :
*
* @param v
*/
public void query(View v) {
String table = "user";
Cursor cursor = sqLiteDatabase.query(table, null, null, null, null, null, null);
if (cursor == null) {
return;
}
while (cursor.moveToNext()) {
Log.d(Contacts.TAG, "id=" + cursor.getInt(0) + ",name=" + cursor.getString(1) + ",age=" + cursor.getInt(2));
}
cursor.close();
}
私たちはログで結果を確認します.