SQLite를 사용하기위해서는
1. SQLiteOpenHelper 클래스 생성
2. 생성자에 Database name를 전달함으로써 SQLiteOpenHelper안에서 서 SQLiteDatabase.openDatabase() 또는 mContext.openOrCreateDatabase()로 Database를 생성또는 다시 연다.
4. Table 생성
3. DML 구현
끗.
SQLite를 사용하는데에 SQLite 클래스 SQLiteOpenHelper
SQLite의 생성자는
SQLiteOpenHelper(Context context, String databaseName, CursorFactory factory, int version)
onCreate()에서 SQLiteDatabase 인스턴스로 table 생성 쿼리를 실행함으로써 Table 생성
public class DBHelper extends SQLiteOpenHelper { private static final int VERSION = 0; private static final String DB_NAME = "dairy.db"; SQLiteDatabase mDB = null; public DBHelper(Context context) { super(context, DB_NAME, null, VERSION); mDB = this.getWritableDatabase(); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE schedule (_id INTEGER PRIMARY KEY AUTOINCREMENT, group_id INTEGER, title TEXT, do BOOL);"); // db.execSQL("CREATE TABLE GROUP_ID (_id INTEGER PRIMARY KEY AUTOINCREMENT, gid INTEGER,"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 업그레이드 필요시 구문 작성. newVersion은 반드시 oldVersion보다 크게. } public Cursor select(String query) { return mDB.rawQuery(query, null); } }
- SQLiteDatabase의 DML 함수
long insert(String table, String nullColumnHack, ContentValues values)
int delete(String table, String whereClause, String[] whereArgs)
int update(String table, ContentValues values, String whereClause, String[] whereArgs)
- 호출 예
String TABLE_NAME = "TEST_TABLE"; String query = "select * form " + TABLE_NAME; ContentValues values = new ContentValues(); values.put("title", "이름"); insert(TABLE_NAME, null, values); delete(TABLE_NAME, "_id = 0", null); update(TABLE_NAME, values, "_id = 0", null); // select는 rawQuery로 대신한다. rawQuery(query, null);
insert는 추가된 row id가 반환된다.
delete, update는 query 성공 갯수가 반환된다.
select는 결과 cursor가 반환된다.
'프로그래밍 > Android 짜투리 지식' 카테고리의 다른 글
[android] code style (0) | 2015.03.05 |
---|---|
[android] Lollipop (v5.x) service 오류 (0) | 2015.02.11 |
[android] google analytics froyo 문제 (0) | 2015.02.10 |
[android] google advertising id (0) | 2014.07.02 |
[android] dex index (0) | 2014.06.03 |