KotlinのRoomを使ったローカルデータベースの扱い方!初心者でもできる保存と取得の基本
生徒
「Kotlinで作ったAndroidアプリに、ユーザーが入力した情報を保存したいんですが、どうしたらいいですか?」
先生
「その場合は、Room(ルーム)という仕組みを使うと、アプリの中にデータベースを作って保存できますよ。」
生徒
「データベースって難しそう…サーバーとか必要なんですか?」
先生
「Roomはローカルデータベースなので、スマホ本体の中にデータを保存できます。初心者でも使いやすいですよ。さっそく基本を学んでみましょう!」
1. Roomとは?Kotlinでデータを保存できる仕組み
Room(ルーム)は、KotlinでAndroidアプリを開発する際に使われる、ローカルデータベース管理のライブラリです。
「ローカルデータベース」とは、アプリがスマートフォンの中にデータを保存して、あとで取り出せる仕組みのことです。Roomを使えば、複雑なデータベース操作を簡単なコードで行えます。
2. Roomを使うには何が必要?build.gradleの設定
まずはRoomを使うためのライブラリを追加します。build.gradle(モジュール)に以下を追加してください。
implementation "androidx.room:room-runtime:2.6.1"
kapt "androidx.room:room-compiler:2.6.1"
さらに、Kotlinでアノテーション処理を行うために、kaptの設定も必要です。
apply plugin: 'kotlin-kapt'
3. データクラス(エンティティ)を作成しよう
Roomでは、保存したい情報を表すクラスを@Entityというアノテーションを使って作成します。
@Entity
data class Memo(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
val content: String
)
@PrimaryKeyは、このデータの「主キー(ユニークな番号)」を表します。autoGenerateをtrueにすると自動で番号が付きます。
4. DAO(データアクセスオブジェクト)を作る
DAOは、データベースにアクセスするための「入り口」のような存在です。ここで、保存や読み込みの操作を定義します。
@Dao
interface MemoDao {
@Insert
fun insert(memo: Memo)
@Query("SELECT * FROM Memo")
fun getAll(): List<Memo>
}
@Insertはデータを追加するため、@QueryはSQL文を使って取得します。
5. データベース本体を作成しよう
Roomでは、すべての設定をまとめる「データベースクラス」を作成する必要があります。
@Database(entities = [Memo::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun memoDao(): MemoDao
}
@Databaseアノテーションでは、使うデータモデルとバージョン番号を指定します。
6. データベースにアクセスする方法
アプリの中でRoomデータベースを使うには、次のように初期化して使います。
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "memo-db"
).build()
val dao = db.memoDao()
databaseBuilderを使うことで、Roomがデータベースを準備してくれます。名前は"memo-db"で自由に決められます。
7. データを保存・取得してみよう
実際にデータを保存・取得するには以下のようにします。Roomの操作は時間がかかるため、基本的には別スレッドで実行します。
Thread {
dao.insert(Memo(content = "テストメモ"))
val memos = dao.getAll()
memos.forEach {
Log.d("MEMO", it.content)
}
}.start()
8. Roomを使うメリットと活用ポイント
Roomを使うことで、次のようなメリットがあります。
- ローカルに安全にデータを保存できる
- SQL文が少なくて済む
- コードが分かりやすく保守しやすい
- Google公式ライブラリで安心
アプリでメモ帳やお気に入り一覧、履歴などの機能を作りたいときに、Roomはとても役立ちます。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
9. 注意点:Roomでよくあるエラーと対策
Roomを使うときに初心者がつまずきやすいポイントも紹介しておきます。
- kaptの設定を忘れるとビルドエラーになります。
- エンティティのクラスに@PrimaryKeyをつけ忘れないようにしましょう。
- データベースの名前やバージョンを変更したらアプリを再インストールするのが安全です。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験