[Android-Kotlin]スタジオの使い方
(注意)自分の勉強や理解したことを整理しました.参考にしてください.少し手がかりがあるかもしれません.
🤔 スタジオとは?
ルーム持続可能性ライブラリはSQLiteに抽象層を提供し、SQLiteを十分に活用しながらデータベースにより信頼性の高いアクセスを実現します.
by android developer
以下に示すように、ルームを定義しています.つまり、SQLliteを直接使用するのではなく、RoomというライブラリでSQLiteを使用します.
🙄なぜ使うのですか?
もしそうであれば、スタジオではなくSQLiteを直接使用できます.
なぜ他のライブラリを使用するのですか?
大量の構造化データを処理するアプリケーションは、データをローカルに維持し、大きなメリットを得ることができます.最も一般的な使用状況は、関連データをキャッシュすることです.これにより、デバイスがネットワークにアクセスできない場合でも、ユーザはオフラインでコンテンツを閲覧することができる.後でアプライアンスが再オンラインになると、ユーザーが開始したコンテンツの変更がサーバに同期されます.
by android developer
つまり、オンラインでもオフラインでも、データベースを使いたい!
😮 使用方法
これからは、どのように使用するかを深く検討します.データエンティティの作成-データベース内のテーブル を表します.データ・アクセス・オブジェクト(データ・アクセス・オブジェクト)の作成-クエリー・ステートメントを使用する データベースクラスの作成-データベースとサービスを接続するプライマリ・アクセスポイント 1. Data entity
User Tableが@primaryKeyを使用してuseridを保持する場合、
AutoGenerateとします.
その他のカラムは@ColumnInfoとして定義されます.Debicenumのように
Int型のカラムがあります.
2. Data Access Object (DAO)
既存のクエリ文と同様に@QueryでSELECT文を使用できます.
また、WHERE文を使用して特定のidを指定してクエリーを生成することもできます.この場合、特定のidは「id」と表示され、関数の主変数として受信されます.
3. Database
RoomDatabaseを拡張する必要があります.そしてDatabasebuilderで
😁参考資料
room
🤔 スタジオとは?
ルーム持続可能性ライブラリはSQLiteに抽象層を提供し、SQLiteを十分に活用しながらデータベースにより信頼性の高いアクセスを実現します.
by android developer
以下に示すように、ルームを定義しています.つまり、SQLliteを直接使用するのではなく、RoomというライブラリでSQLiteを使用します.
🙄なぜ使うのですか?
もしそうであれば、スタジオではなくSQLiteを直接使用できます.
なぜ他のライブラリを使用するのですか?
大量の構造化データを処理するアプリケーションは、データをローカルに維持し、大きなメリットを得ることができます.最も一般的な使用状況は、関連データをキャッシュすることです.これにより、デバイスがネットワークにアクセスできない場合でも、ユーザはオフラインでコンテンツを閲覧することができる.後でアプライアンスが再オンラインになると、ユーザーが開始したコンテンツの変更がサーバに同期されます.
by android developer
つまり、オンラインでもオフラインでも、データベースを使いたい!
😮 使用方法
これからは、どのように使用するかを深く検討します.
@Entity(tableName = "user_table")
data class User(
@PrimaryKey(autoGenerate = true) var userid: Int?,
@ColumnInfo(name = "devicenum") var devicenum: Int?
)
user tableというentityが作成されました.User Tableが@primaryKeyを使用してuseridを保持する場合、
AutoGenerateとします.
その他のカラムは@ColumnInfoとして定義されます.Debicenumのように
Int型のカラムがあります.
2. Data Access Object (DAO)
interface UserDao {
@Insert
fun addUser(user:User)
@Query("SELECT * FROM user_table ORDER BY userid ASC")
fun readAllData(): LiveData<List<User>>
@Delete
fun delete(user:User)
}
user tableで使用したいクエリーintface userdaoを使用します.既存のクエリ文と同様に@QueryでSELECT文を使用できます.
また、WHERE文を使用して特定のidを指定してクエリーを生成することもできます.この場合、特定のidは「id」と表示され、関数の主変数として受信されます.
3. Database
@Database(entities = [User::class], version = 1, exportSchema = false)
abstract class UserDatabase: RoomDatabase() {
abstract fun userDao():UserDao
companion object {
@Volatile
private var INSTANCE: UserDatabase? = null
fun getDatabase(context: Context): UserDatabase{
val tempInstance = INSTANCE
if(tempInstance != null){
return tempInstance
}
synchronized(this){
val instance = Room.databaseBuilder(
context.applicationContext,
UserDatabase::class.java,
"user_database"
).build()
INSTANCE = instance
return instance
}
}
}
}
データベースに関連付けられたclass.RoomDatabaseを拡張する必要があります.そしてDatabasebuilderで
synchronized(this){
val instance = Room.databaseBuilder(
context.applicationContext,
UserDatabase::class.java,
"user_database"
).build()
INSTANCE = instance
return instance
このセクションでは、データベースclassとentityを接続します.😁参考資料
room
Reference
この問題について([Android-Kotlin]スタジオの使い方), 我々は、より多くの情報をここで見つけました https://velog.io/@hannahf97/Android-kotlin-Room-사용법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol