SQLitデータベースの追加削除
6890 ワード
SQLiteデータベース Sqlite概要Sqliteは軽量なデータベースで、比較的小さなCライブラリに含まれています.その設計目標は組み込み式です.リソースの占有量が非常に少ないため、数百Kのメモリしか必要ない可能性があります.Windows/Linux/Unixなどの主流のオペレーティングシステムをサポートし、多くのプログラム言語と結合することができます.例えば、C#/Java/phpなどです.そのため、組み込み機器で特に人気があり、androidの開発要件にもぴったりなので、Android開発ではこのデータベースがよく使われています. SQlite内部構造は内部にあり、SqliteにはSQLコンパイラ、カーネル、バックエンド、添付ファイルのいくつかのコンポーネントがあります.Sqliteは、仮想マシンと仮想データベースエンジンを利用することで、Sqliteのカーネルをデバッグ、修正、拡張するのに便利になり、すべてのSQL文が読みやすく、Sqlite仮想マシンで実行できるプログラムセットにコンパイルされます. androidでのSqliteの使用方法AndroidでSqliteデータベースを使用するには、まずSQLiteOpenHelperクラスを継承するクラスを作成する必要があります.このクラスをDatabaseHelperと命名します.Sqliteにアクセスするアシスタントクラスとして、2つの機能を提供しています. getReadableDatabase()/getWritableDatabase()は、SQLiteDatabaseオブジェクトを取得し、データベースを操作できます. はOnCreate()とonUpgrade()の2つのコールバック関数を提供し、データベースの作成とアップグレード時に独自の操作を行うことができます.
例:データベースアシスタントクラス カスタムMySQLiteOpenHelperクラス継承SQLiteOpenHelper データアシスタントクラスを使用してデータベースを作成する 具体的な添削の調査は以下の通りである: データベースを作成または開く方法 データ挿入 単一データ を挿入する.
SQ文を使用して複数のデータを挿入する Transactionトランザクション:トランザクションの開始と終了の間のコードはすべて実行されますか? は実行されません.削除データ 修正データ クエリーデータ
-注意事項:カスタムデータベースアシスタントクラスを使用してデータベースを作成した場合、データベースの格納場所は**data/data/com.w.Demo/databases/my_database.db** データベースを作成または開く方法を使用する場合、データベースの場所は:/storage/emulated/0/my_database.db
例:
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
//
private final static String DB_NAME = "my_database.db";
//
private final static int DB_VERSION = 1;
//
public final static String TABLE_NAME = "table_person";
/**
*
*
* @param context
* @param name
* @param factory , null,Android
* @param version
*/
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
// :
public MySQLiteOpenHelper(Context context) {
// "my_database.db" , 1 : data/data/com.w.Demo/databases/my_database.db
super(context, DB_NAME, null, DB_VERSION);
}
/**
*
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
// , : , : _id,name,age
/* : SQ : exists ,() */
String sql = "create table if not exists " + TABLE_NAME + "(_id integer primary key autoincrement, name varchar, age integer)";
//
db.execSQL(sql);
}
/**
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion != newVersion) {
Log.d("TAG", "onUpgrade: onUpgrade");
}
}
}
MySQLiteOpenHelper mHelper = new MySQLiteOpenHelper(this);
SQLiteDatabase dbSelect = mHelper.getReadableDatabase();
public SQLiteDatabase getDb() {
// my_database.db
String filePath = Environment.getExternalStorageDirectory() + "/my_database.db";
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(filePath, null);
// table_person
String sql = "create table if not exists table_person(_id integer primary key autoincrement, name varchar, age integer)";
//
database.execSQL(sql);
return database;
}
SQLiteDatabase dbAdd = getDb();
ContentValues values = new ContentValues();
values.put("name", " ");
values.put("age", 18);
// table:
//nullColumnHack: null ,nullColumnHack , ; null ,nullColumnHack , null
// values:
dbAdd.insert("table_person", null, values);
//
SQLiteDatabase dbAdd = getDb();
//
dbAdd.beginTransaction();
try {
for (int i = 0; i < 10; i++) {
//
String sql = "insert into table_person(name, age) values(' ', " + i + ")";
dbAdd.execSQL(sql);
}
//
dbAdd.setTransactionSuccessful();
} catch (Exception e) {
} finally {
//
dbAdd.endTransaction();
}
// ,
dbAdd.close();
SQLiteDatabase dbDelete = getDb();
//
// table:
// whereClause: , “name = ?”
// whereArgs: , , “" "”
dbDelete.delete("table_person", "name = ?", new String[]{" "});
dbDelete.close();
ContentValues contentValues = new ContentValues();
contentValues.put("name", " ");
contentValues.put("age", 25);
SQLiteDatabase dbModify = getDb();
// table:
// values:
// whereClause:
// whereArgs:
dbModify.update("table_person", contentValues, "name = ?", new String[]{" "});
dbModify.close();
// ;
SQLiteDatabase dbSelect = getDb();
//
// table:
// columns: ( ),
// selection:
// selectionArgs:
// groupBy: ( )
// having: ( )
// orderBy:
Cursor cursor = dbSelect.query("table_person", new String[]{"name", "age"}, null, null, null, null, null);
int nameIndex = cursor.getColumnIndex("name");
int ageIndex = cursor.getColumnIndex("age");
//
while (cursor.moveToNext()) {
String name = cursor.getString(nameIndex);
int age = cursor.getInt(ageIndex);
showText = showText + " : " + name + "\t : " + age + "
";
}
Log.d("TAG", " : " + showText );
dbSelect.close();
cursor.close();
-注意事項: