계발자 블로그

Room insert 예제 본문

Android

Room insert 예제

더구더구 2021. 10. 27. 21:27

https://developer.android.com/jetpack/androidx/releases/room

 

Room  |  Android 개발자  |  Android Developers

Room Room 지속성 라이브러리는 SQLite에 추상화 레이어를 제공하여 SQLite를 완벽히 활용하면서 더 견고한 데이터베이스 액세스를 가능하게 합니다. 최근 업데이트 현재 안정화 버전 다음 버전 후보

developer.android.com

 

예제만 따라 해본 안드로이드 Room

 

간단하게 Room이란 안드로이드에서 기존 로컬 DB를 사용하기 위해 SQLite를 사용했다면

 

최근 구글에서는 ReactiveX, MVVM 패턴 등을 사용한 앱 설계를 권장하기 때문에

Jetpack 라이브러리에 속한 Room을 로컬 DB로 사용합니다

 

SQLite에 모든 기능을 활용하면서 더 쉬운 데이터베이스 엑세스를 허용합니다.

 

코드만 보고 따라 해본거라 개념 설명이 부족합니다

추후에 이론적인 부분까지 공부하려고 합니다.

 

밑에는

오늘 실습했던 내용

간단하게 EditText, Button, TextView로 구성된 레이아웃을 만들어줍니다.

 

 

Todo 클래스 파일

Todo 클래스 파일입니다.

엔터티 어노테이션과

프라이머리키 어노테이션을 사용합니다

옆에 autoGenerate=true는 id 값을 자동으로 생성해줍니다.

 

TodoDao 인터페이스

DAO 인터페이스입니다 (Data Access Object)

이렇게 데이터를 삽입, 수정, 삭제 메서드를 정의할 수 있고

다른 기능을 수행하고 싶을때는 

쿼리 어노테이션을 붙이고 sql 문법으로 작성하면 됩니다.

 

 

AppDatabase 클래스

 

데이터베이스를 생성하고 관리하는 데이터베이스 객체를 만들어줍니다

RoomDatebase를 상속 받습니다

 

 

MainActivity

 

MainActivity입니다

EditText에 입력 후 버튼을 누르면 db에 저장되는 형식입니다

 

아까 만든 AppDatebase를 db로 쓰는겁니다 name에 "datebase-name"은

datebase-name 이름으로 파일이 생성되는겁니다. 

 

.allowMainThreadQueries()는 메인스레드에서 실행시킨다는 것입니다

db는 백그라운드에서 실행시키지 않으면 에러가 나기 때문에

강제로 메인스레드에서 실행 시켜주는거에요

간단히 공부용으로 테스트 할때만 써주면 되요

 

 

 

 

보시면 저는 이미 a를 추가시켜 놔서 a가 들어가 있네요

b, c등 넣는데로 잘 나오고 앱을 종료하고 다시 들어가도 잘 나오는걸 확인할 수 있습니다.

 

출처 : 오준석의 생존코딩

'Android' 카테고리의 다른 글

[Android] Intent 사용하기  (0) 2021.12.07
[Android] RecyclerView 사용하기  (0) 2021.11.30
[JetPack] Navigation  (0) 2021.11.01
[JetPack] AAC ViewModel  (0) 2021.10.28
LiveData 사용해 보기  (0) 2021.10.27