android DB


メモリとリポジトリの違い

  • メモリは揮発性(アプリケーションを閉じるとデータが失われる)
  • です.
  • リポジトリ内のテキストファイル、Shared Preferences、データベースの3種類
  • アンドロイドシステムでTextFile
  • を使用することはめったにありません.

    Shared Preferences

    간단한 값 저장에 DB 를 사용하기에는 복잡하기 때문에 Shared Preferences 를 사용하면 적합하다.
  • Constructor
    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...上記のフォーマットは同じで、少し変更するだけで使用できます.