android studio数据库创建两个表并添加数据
时间: 2023-07-27 21:30:49 浏览: 163
本博客文档下载.txt
好的,我可以给你提供一个简单的步骤来创建两个表并添加数据。
1. 创建数据库
首先,在 Android Studio 中创建一个新的项目,然后在 `app` 目录下的 `build.gradle` 文件中添加以下依赖:
```
dependencies {
implementation 'androidx.room:room-runtime:2.2.5'
}
```
然后,在 `app` 目录下创建一个新的包名为 `database`,并在该包下创建一个新的类名为 `AppDatabase` 的类,该类应该扩展自 `RoomDatabase`。在 `AppDatabase` 类中,我们需要创建一个抽象方法,该方法将返回一个具有 `@Dao` 注释的接口。
```
@Database(entities = [Table1::class, Table2::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun dataDao(): DataDao
}
```
在 `@Database` 注释中,我们可以定义我们想要创建的表的实体类。在这个例子中,我们创建了两个表,即 `Table1` 和 `Table2`。`version` 参数指定了数据库的版本。
2. 创建实体类
接下来,我们需要创建两个实体类,即 `Table1` 和 `Table2`。这两个类应该包含我们想要存储的数据的属性,并使用 `@Entity` 注释进行注释。
例如,以下是 `Table1` 类的示例:
```
@Entity(tableName = "table1")
data class Table1(
@PrimaryKey(autoGenerate = true)
var id: Long? = null,
var name: String,
var age: Int
)
```
在这个例子中,我们创建了一个名为 `table1` 的表,并定义了三个属性,即 `id`、`name` 和 `age`。`@PrimaryKey` 注释表示 `id` 属性是主键,并且 `autoGenerate` 参数表示该属性将自动增长。
3. 创建数据访问对象 (DAO)
接下来,我们要创建一个数据访问对象 (DAO),该对象将允许我们对数据库进行操作。在 `database` 包下创建一个新的接口名为 `DataDao` 的类,并使用 `@Dao` 注释进行注释。
```
@Dao
interface DataDao {
@Insert
suspend fun insertTable1(table1: Table1)
@Insert
suspend fun insertTable2(table2: Table2)
@Query("SELECT * FROM table1")
suspend fun getAllTable1(): List<Table1>
@Query("SELECT * FROM table2")
suspend fun getAllTable2(): List<Table2>
}
```
在这个例子中,我们定义了四个方法,分别是插入 `Table1` 和 `Table2` 的数据、获取 `Table1` 和 `Table2` 的所有数据。
4. 添加数据
在 `MainActivity` 类中,我们可以使用以下代码来插入数据:
```
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
val dataDao = db.dataDao()
GlobalScope.launch {
val table1 = Table1(name = "John", age = 25)
val table2 = Table2(address = "123 Main St", phone = "555-5555")
dataDao.insertTable1(table1)
dataDao.insertTable2(table2)
}
```
在这个例子中,我们创建了一个数据库实例,并使用 `dataDao()` 方法获取 `DataDao` 对象。然后,我们使用 `GlobalScope.launch` 启动一个协程,并在其中插入 `Table1` 和 `Table2` 的数据。
5. 获取数据
我们可以使用以下代码来获取数据:
```
GlobalScope.launch {
val table1List = dataDao.getAllTable1()
val table2List = dataDao.getAllTable2()
// 处理数据
}
```
在这个例子中,我们使用 `getAllTable1()` 和 `getAllTable2()` 方法获取 `Table1` 和 `Table2` 的所有数据,并将它们存储在 `table1List` 和 `table2List` 变量中,然后可以在协程中对数据进行处理。
希望以上步骤可以帮助你创建两个表并添加数据。
阅读全文