ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android - local DBMS, SQLite
    Search: Android Android 2020. 7. 19. 14:53

     

    서버 없이 개인 휴대폰에 App별로 저장하는 방식.

    저장위치: 'data/data/[package_name]/databases

     

    DB객체 생성 또는 얻기

    SQLiteDatabase db = openOrCreateDatabase("testdb", MODE_PRIVATE, null);

     

    Query 실행

    db.execSQL(String sql) select문을 제외한 insert, update 등의 SQL 수행

    db.rawQuery(String sql, String[] selectionArgs) select문의 SQL 수행

     

    Cursor, 결과 행

    Cursor cs = db.rawQuery("select ? from ?", new String[]{"*", "testtb"});

    cursor 위치 조절 기능
    cs.moveToNext(): 다음 행 선택.
    cs.moveToPrevious(): 이전 행 선택.
    cs.moveToFirst(): 가장 첫 번째 행 선택.
    cs.moveToLast(): 가장 마지막 행 선택.

    cursor 값 얻기
    ss = {cs.getString(0), cs.getString(1)};

     

    SQLiteOpenHelper

    table생성이나 schema변경 등의 작업을 일원화 해서 sql 작업을 할 때 table 등이 생성된 상태인지 판단하지 않아도 되게 할 수 있다.

    SQLiteOpenHelper는 추상 class이므로 상속받는 sub class를 만들어 사용해야 한다.

    onCreate() 앱이 설치된 후 'SQLiteOpenHelper'가 최초로 이용되는 순간 한 번 호출.
    onUpgrade() db버전이 변경될 때마다 호출.

    getReaderbleDatabase(), getWritableDatabase() 함수로 SQLiteDatabase를 얻어 사용할 수 있다.

     

    insert, update, delete 함수

    rawQuery, execSQL의 함수로 sql문을 직접 작성해 실행하는 방법 외에 함수로 각 기능을 호출 할 수 있다.

    db.insert(...)
    db.update(...)
    db.delete(...)
    db.query(...) select문

    //insert 처리
    ContentValues vs = new ContentValues();
    vs.put("name", "Hong");
    vs.put("id", "gil");
    db.insert("testtb", null, vs);
    //select 처리
    Cursor c = db.query("testtb", new String[]{"name", "id"}, "id=?", new String[]{"gil"}, null, null, null);

    함수 사용법 Ex

    LcSQLiteT1.zip
    0.26MB

     

    'Android' 카테고리의 다른 글

    AndroidStudio - Tab Space 탭키 간격  (0) 2020.07.19
    Android - Scoped Storage Mode  (0) 2020.07.19
    Android - BitmapFactory 이미지 크기 조정  (0) 2020.07.19
    Android - local DBMS, Realm  (0) 2020.07.19
    Android - ConstrainLayout  (0) 2020.07.19
    Android - GridLayout  (0) 2020.07.19
    Android - TableLayout  (0) 2020.07.19
    Android - View Attributes(속성)  (0) 2020.07.18

    댓글