Android

【Kotlin】RoomでDB管理をする

投稿日:

はじめに

こんにちは。miyagawaです。ここ3ヶ月ほど案件でKotlinに触れ、色々な書き方や実装の方法などがわかり始めてきました。
今回は普段使用していない『Room』を使ってDB管理をしたいと思います。

Gradleを更新

Gradleファイルに【公式の実装マニュアル】の項目を追記します。
gradle(app)だけでなく、gradle(.)も更新する必要があるので注意が必要です。

Data Classを作成する

DB管理する元となるData Classを作成します。
今回はUserというデータ(ID、名前、性別)を作成します。
性別のクラスは「男性、女性、その他」の3種類のみを設定するため、Enum Classを設定しました。
@Entityアノテーションをつけることによって、このクラスはデータベースに保存されるエンティティであることを表すことができます。

DAOファイルを作成する

DAOとはData Access Objectの略で、データをSQLで操作する処理を記載します。
コンパイル時にエラーが起こらないかを検証します。そのため、ランタイムエラーが起きにくくなります。
今回はデータ全件取得、追加、更新、削除のメソッドを追加しました。

予想していたよりスッキリかけました。
suspend funを使うことで、Coroutineを一時停止させることができるそうですが、今回はつけずに実行してみます。

RoomDatabaseファイルを作成する

ここでようやくRoomという単語が出てきました。
RoomDatabaseクラスは下の条件を満たさなければなりません。

  • RoomDatabaseを継承した抽象クラスであること
  • Entityのリストをアノテーションの中に列挙されている
  • Daoクラスを返却するabstractメソッドを持つこと
  • DBを操作してみる

    MainActivityにdatabaseをいじる処理を書きました。
    Create、Update、Deleteをメソッド単位で準備し、それぞれonCreateで呼んでいます。

    さいごに

    Roomを用いてDBを操作しました。LiveDataと連携するとRecycleViewなどに使えて、データが変更されるたびに反映されるのでまた試してみたいと思います。

    参考

    https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0

    おすすめ書籍

    Kotlinイン・アクションHead Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本

    page_footer_300rect




    page_footer_300rect




    -Android

    執筆者:


    comment

    メールアドレスが公開されることはありません。

    CAPTCHA


    関連記事

    [Android] リソースフォルダの修飾子

    1 はじめに2 画面の向き3 画面サイズ4 テキスト入力方法5 複数修飾子の組み合わせ6 その他7 さいごに はじめに Androidアプリではリソースフォルダ名に修飾子をつけることによって、様々な環 ...

    【Kotlin】RecyclerViewAdapterを使ってリスト表示

    1 はじめに2 GradleファイルにRecyclerViewの設定を追加する3 レイアウトファイルの作成4 Adapterクラスの追加5 Activityファイルへの追加6 さいごに7 おすすめ書籍 ...

    【Kotlin】FirebaseAuthenticationでメールアドレスで認証機能を実装

    1 はじめに2 レイアウト3 新規登録4 ログイン5 さいごに6 参考7 おすすめ書籍 はじめに こんにちは。miyagawaです。 前回は「FirebaseAuthenticationでGoogle ...

    【Androidマテリアル】Ripple Effect

    1 はじめに2 Ripple Effectとは3 設定方法4 カスタマイズ5 さいごに はじめに こんにちは、ソニーから新Aiboが発表されましたね。個人的には欲しいと思っているのですが、最近Goog ...

    AndroidでWebViewを使用するときに気をつけたいポイント追加4選!

    1 はじめに2 Cookie2.1 Cookieを設定する2.2 Cookieを取得する3 ハンドリングの効かないページ遷移3.1 POSTでのページ遷移3.2 PDFなど、WebViewで開くことの ...

    フォロー

    follow us in feedly

    page_side_300rect

    2019年10月
    « 9月 11月 »
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031 

    アプリ情報

    私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。