쏭식
Ssongcode;
쏭식
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • JAVA (21)
      • Basic (21)
    • Kotlin (14)
      • Basic (14)
    • Android (64)
      • Basic (24)
      • JETPACK (30)
      • Compose (8)
      • 파고들기 (2)
    • Project (4)
    • etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코틀린코테
  • 자바
  • 객체지향
  • 메소드
  • DataBinding
  • 백준
  • 리사이클러뷰
  • compose
  • 코틀린
  • 기초100제
  • AAC
  • 변수
  • 코딩테스트
  • ViewModel
  • livedata
  • workmanager
  • 배열
  • 컴포즈
  • 프로젝트회고
  • Adapter
  • 코드업100제
  • 자료구조
  • mvvm
  • 코테
  • Jetpack
  • 알고리즘
  • Kotlin
  • 상속
  • Android
  • Room

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쏭식

Ssongcode;

[JETPACK개론] SQLite(2)
Android/JETPACK

[JETPACK개론] SQLite(2)

2022. 8. 30. 23:59

전에 포스팅했던 내용에 이어서 SQLite를 다뤄볼 예정이다!
전 글에서는 SQLite에서 테이블을 만들고, insert하고, delete하고, select하는 구문을 작성했으면

이번 글에서는 view를 간단히 만들어보고 이 뷰에서 어떻게 활용할 수 있는지 다뤄볼 것이다!

 

먼저 위에 EditText에서 작성한 것을 insert버튼을 눌렀을 때 테이블에 들어가고,

GetAll 버튼을 눌렀을 때에는 resultArea에 테이블에 있던 값이 나오고,

DeleteAll을 했을 때에는 테이블의 전체 값을 삭제하는 것을 확인할 것이다.

 

insert구문

fun insert(str : String) {

    val db = this.writableDatabase

    val values = ContentValues().apply {
        put(TITLE, str) //TITLE의 값에 str을 넣겠다.
    }

    db.insert(TBL_NAME, null, values)

}

 

getAllData구문(전체 select)

fun getAllData() : ArrayList<String> {

    val db = this.readableDatabase
    val query = "SELECT * FROM $TBL_NAME"

    val cursor = db.rawQuery(query, null)

    val arr = ArrayList<String>()

    with(cursor) {
        while (moveToNext()) {
            arr.add(getString(1)) //값을 하나씩 넣어줌
            //이는 ID값은 아니고, TITLE값을 의미함
        }
    }

    return arr
}

 

delete구문(전체 delete)

fun deleteAll(){

    val db = this.writableDatabase
    db.execSQL("DELETE FROM $TBL_NAME")

}

 

class MainActivity : AppCompatActivity() {

    lateinit var db : SQLiteHelperSample

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        db = SQLiteHelperSample(this)

이제 액티비티에서 위와 같이 localDB를 생성해주고,

val inputArea = findViewById<EditText>(R.id.inputArea)

val insertBtn = findViewById<Button>(R.id.insert)
insertBtn.setOnClickListener {
    val inputText = inputArea.text.toString()
    db.insert(inputText)
    inputArea.setText("")
}

이렇게 값을 넣어 

getAllBtn.setOnClickListener {
    val arr = db.getAllData()
    resultArea.text = arr.toString()
}

버튼을 클릭했을 때 잘 들어갔는지 확인해보자!

1234, 12345를 넣고, GETALL버튼을 클릭했는데, 다음과 같이 잘 나오는 것을 알 수 있다!

결과화면

deleteBtn.setOnClickListener {
    db.deleteAll()
}

delete버튼을 클릭하고 GETALL버튼을 클릭했을 때는 예상과 마찬가지로 테이블의 모든 행이 삭제된 것을 확인할 수 있다.

결과화면

또한, 이는 하나의 데이터베이스기 때문에 앱을 종료했다가 켜도 기존에 있던 테이블의 값들 전체가 불러오지는것 또한 확인할 수 있었다!!

 

 

GitHub - SsongSik/JetPack_Android_Practice: Android practice using the Jetpack library

Android practice using the Jetpack library. Contribute to SsongSik/JetPack_Android_Practice development by creating an account on GitHub.

github.com

 

저작자표시 (새창열림)

'Android > JETPACK' 카테고리의 다른 글

[JETPACK개론] ROOM(2)  (0) 2022.09.03
[JETPACK개론] ROOM(1)  (0) 2022.09.02
[JETPACK개론] SQLite(1)  (0) 2022.08.29
[JETPACK개론] Retrofit + ViewModelScope + RV + Glide  (0) 2022.08.28
[JETPACK개론] Retrofit 예제 + RecyclerView  (0) 2022.08.27
    'Android/JETPACK' 카테고리의 다른 글
    • [JETPACK개론] ROOM(2)
    • [JETPACK개론] ROOM(1)
    • [JETPACK개론] SQLite(1)
    • [JETPACK개론] Retrofit + ViewModelScope + RV + Glide
    쏭식
    쏭식

    티스토리툴바