android DB
メモリとリポジトリの違い
Shared Preferences
간단한 값 저장에 DB 를 사용하기에는 복잡하기 때문에 Shared Preferences 를 사용하면 적합하다.
SharedPreferences variable = getSharedPreferences(dbname, MODE_PRIVATE)
SharedPreferences.Editor editor = variable.edit();
editor.putType("key",value);
getType("key",null);
SQLiteDatabase
SQLite는 다른 데이터베이스에 비해 사용 가능한 자료형이 많지않고 5가지를 지원한다.
NULL
INTEGER : 1,2,3,4,6,8bytes의 정수 값
REAL : 8bytes의 부동 소수점 값
TEXT : UTF-8, UTF-16BE, UTE-16LE 인코딩의 문자열
BLOB : 입력된 그대로 저장
문법은 reference 를 확인 할 것
id値がある場合の繰返し処理
入力したデータにアイデンティティー値がある場合は、テーブルの作成時に自動的にチェックを実行して重複作成を回避する必要はありません.
重複したアイデンティティのエラーは無視できます
SELECT 명령을 제외한 대부분의 명령을 execSQL(String sql); 메서드로 실행 할 수 있다.
Tip) SQLiteDatabase db 를 사용하면 항상 db.close() 를 사용해야함
構文はSQL文に似ています
varchar = text, int = integer , update, delete.... 異なる
定数クラス、データ変数クラス(ex)id、name、phone、handlerクラスを設計する必要があります.
Handler Class
SQLiteOpenHelper、Overrideメソッド、Constructorの継承でスーパーを設定する
super ( context,dbname,null,int version)
デザイン
create table -> drop table -> add(insert) -> get(one select) -> getAll(all select)
-> update ->delete ->count....
create table
SQL文とほぼ同じ自動インクリメンタル位置注意後dbを作成します.execSQL(String variable);
dropテーブルと同じ
add(insert)parameter=ModelClass作成者はメソッドを作成する必要があります
parameter = DataVariable Class
SQLiteDatabase variable = getWritableDatabase():
ContentValue=new ContentValue():最初に挿入したクラスであることを覚えておいてください
values.put():SQL insert文の値()をput()に入れる
variable.値を保存して挿入する必要があります(テーブル定数、null、values)
` variable.close(); 常にデータベースを閉じる必要があります
Tip) 수정 삽입 등은 Writable 읽기만 한다면 readable
get(one select) parameter = id
-Cursorを選択する最初の方法
getReadableDatabaseオブジェクトの作成
Cursor cursor = db.Query(SQL文の作成)Cursor参照行
db.query()作成順序tablename->String[]すべての列の作成->「=?」を選択
"= ?" はい、new String[]{String.valueOf(id)}->groupBY->have->orderBY
if(cursor != null) { cursor.moveToFirst(); } Cursor 를 제일 첫번쨰 Row 로 이동 시킴
column 의 값을 해당 type에 맞게 variable에 저장
column의 변수들을 mobleClass에 저장 후 return;
- getAll (All select)
- select 하는 Cursor 두번쨰 방법
return type을 ArrayList<modelClass>로 하는게 좋음
getReadabledDatabase Object 생성
Sting selectAll = "select * from " + Util.TABLE_NAEM;
Cursor cursor = db.rawQuery(selectAll,null) SQL문 을 작성해서 Cursor에 입력
if(cursor.moveToFirst()){
do{
Type var = cursor.getString(columnindex:)
ModelClass var1 = new ModelClass();
var1.setType( var );
modelClassList.add( var1 );
}while(cursor.moveToNext()); Cursor를 다음 Row로 이동 시킨다.
return modelClassList;
Selete order by 문 order by id desc
update parameter = ModelClass
getWritableDatabase(); オブジェクトの作成
ContentValueオブジェクトを作成した後の変数.put(column, model.getData);
通常idを使用したSQLテーブル更新文where設定の作成
int ret = db.update(Util.TABLE_NAEM, 테이블명
ContnetValues.variable, 업데이트할 value
Util.KEY_ID+" = ? ", where
new String[]{String.valueOf(model.getId())}); = ? 에 들어갈 값
db.close(); 항상 db 를 닫아 줘야 함
return ret;
delete parameter = ModelClass
update文と同様にid値を指定するだけでdbを削除できます.delete( ..... )
残りのlike、count...上記のフォーマットは同じで、少し変更するだけで使用できます.
Reference
この問題について(android DB), 我々は、より多くの情報をここで見つけました https://velog.io/@cloud0/android-DBテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol