본문 바로가기
Kotlin/Kotlin 팁

ANDROID SQLite 데이터 베이스 사용 방법 1편

by MonoSoft 2020. 9. 28.
728x90
반응형

 

위와 같이 새로운 클래스를 추가해준다 

SQLite를 별로 관리하기 위해 효율적인 관리를 위해서....

 

 

 

===============================소스==============================

package com.monosoft.sqlitesample

import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper

data class Memo(var no :Long?, var content:String, var datetime:Long)

class SqliteHelper(context: Context, name : String, version:Int)
: SQLiteOpenHelper(context, name, null, version) {

override fun onCreate(p0: SQLiteDatabase?) {
val create = "create table memo (`no` integer primary key, content text, datetime integer)"
p0?.execSQL(create)
}

override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
//테이블에 변경사항이 있을 경우 호출됨
//SqliteHelper()의 생성자를 호출할 때 기존 데이터베이스와 version을 비교해서 높으면
//호출된다.
}

//데이터 입력 함수
fun insertMemo(memo:Memo) {
// DB 가져오기
var wd = writableDatabase
//Memo를 입력타입으로 변환
val values = ContentValues()
values.put("content",memo.content)
values.put("datetime",memo.datetime)

//DB에 넣기
wd.insert("memo",null, values) //wd.insert(테이블이름,null, )
//DB 닫기
wd.close()
}

//데이터 조회함수
fun selectMemo() : MutableList<Memo> {
val list = mutableListOf<Memo>()

val select = "select * from memo"
val rd = readableDatabase
val cursor = rd.rawQuery(select,null)

while(cursor.moveToNext()) {
val no = cursor.getLong(cursor.getColumnIndex("no"))
val content = cursor.getString(cursor.getColumnIndex("content"))
val datetime = cursor.getLong(cursor.getColumnIndex("datetime"))

val memo = Memo(no,content,datetime)
list.add(memo)
}
cursor.close()
rd.close()
return list
}

//데이터 수정 함수
fun updateMemo(memo:Memo) {
val wd = writableDatabase
//Memo를 입력타입으로 변환
val values = ContentValues()
values.put("content",memo.content)
values.put("datetime",memo.datetime)

wd.update("memo",values, "no = ${memo.no}", null)
wd.close()
}

//데이터 삭제 함수
fun deleteMemo(memo:Memo) {
val wd = writableDatabase
//방법 1
//val delete = "delete from memo where no = ${memo.no}"
//wd.execSQL(delete)
//방법 2
wd.delete("memo","no = ${memo.no}",null)
wd.close()
}

}

 

 

728x90
반응형

'Kotlin > Kotlin 팁' 카테고리의 다른 글

Android 카메라 사용 방법  (0) 2020.10.06
ANDROID SQLite 데이터 베이스 사용 방법 2편  (0) 2020.09.29
ANDROID 코틀린 디버깅  (0) 2020.09.23
ANDROID 파일 읽고 쓰기  (0) 2020.09.22
ANDROID 권한처리  (0) 2020.09.21

댓글