위와 같이 새로운 클래스를 추가해준다
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()
}
}
'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 |
댓글