[Android]スタジオDataBase 1編


背景


モバイルプログラミングチームプロジェクトが始まりました.
これまでAndroid開発は,サーバチームが開発したAPIを用いて行われてきた.
しかし、今回のチームプロジェクトでは専門のサーバーチームはなく、初めて開発に触れた人もいました.
だから最小限の努力で最大の成果を上げる方向に集中した.
団体購入消費者は団体購入アプリケーションで買い物をしたくない.
彼らは買いたいものをどのように販売するかのリンクに興味を持っています.
これらの問題を解決するために,KakaoTalk,Insta,Naver Cafeなどを用いた.
多くの場所に分散した共同購入リンクを収集できるアプリケーションを企画した.

スタジオDBを選択した理由


「最小構成のコア機能」に重点を置きますが、製品は
描画が必要なので、データベースが必要です.
誰でも1時間以内に開発できる簡単な内部データベースを利用することにした.
そして私はこれがスタジオであることに気づいた.

Android Docs


https://developer.android.com/docsという場所では、ほとんどのアンドロイドドキュメントを親切に提供しています.

1.Gradle依存の追加



まず,Gradleでスタジオを用いたコードを記述して構築する.
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

2.ルームのキーコンポーネントの作成



投稿を保存するためにDBを作成する予定です.
ドキュメントに基づいてAppDatabase、Post、PostDaoを作成しました.
//Post의 코드(Setter, Getter 생략)
@Entity
public class Post {
    @PrimaryKey(autoGenerate = true)
    private int id;
    private int post_id;
    private String user_id;
    private String keyword;
    private String title;
    private String content;
    private Integer target;
    private Integer people;
    private String url;
    private String date;
    private String uri_image;
    private Integer id_drawable;
    private String channel;
    public Post(int post_id, String user_id, String keyword, String title, String content,
                Integer target, Integer people, String url, String date, String uri_image,
                Integer id_drawable, String channel) {
        this.id = id;
        this.post_id = post_id;
        this.user_id = user_id;
        this.keyword = keyword;
        this.title = title;
        this.content = content;
        this.target = target;
        this.people = people;
        this.url = url;
        this.date = date;
        this.uri_image = uri_image;
        this.id_drawable = id_drawable;
        this.channel = channel;
    }
}
// PostDao의 코드
@Dao
public interface PostDao {
    @Query("SELECT * FROM Post")
    List<Post> getAll();
    @Insert
    void insert(Post post);
    @Update
    void updatePost(Post post);
    @Delete
    void deletePost(Post post);
    @Query("DELETE FROM Post")
    void clearAll();
}
//Appdatabase의 코드
@Database(entities = {Post.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract PostDao postDao();
}
これでRoom DBを使用するすべての準備が完了します.
2編では、スタジオDBにデータを格納する方法と、データをインポートする方法について説明します.