创建一个名为DatabaseHelper的Kotlin类,继承自SQLiteOpenHelper类,用于创建和管理SQLite数据库。怎么在DatabaseHelper中创建两张表,一张用于存储用户信息,一张用于记录登录状态。
时间: 2024-03-08 10:47:52 浏览: 111
好的,下面是在Kotlin中创建DatabaseHelper类,包含创建两张表的代码:
```
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
class DatabaseHelper(context: Context) :
SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) {
companion object {
// 定义数据库名称和版本号
const val DATABASE_NAME = "login_register.db"
const val DATABASE_VERSION = 1
// 定义用户信息表名称和字段
const val TABLE_USER = "user"
const val COLUMN_USER_ID = "id"
const val COLUMN_USER_NAME = "name"
const val COLUMN_USER_PASSWORD = "password"
// 定义登录状态表名称和字段
const val TABLE_LOGIN_STATUS = "login_status"
const val COLUMN_LOGIN_STATUS_ID = "id"
const val COLUMN_LOGIN_STATUS_USER_ID = "user_id"
const val COLUMN_LOGIN_STATUS_LOGIN_TIME = "login_time"
}
override fun onCreate(db: SQLiteDatabase) {
// 创建用户信息表
val createUserTableSql = "CREATE TABLE IF NOT EXISTS $TABLE_USER (" +
"$COLUMN_USER_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"$COLUMN_USER_NAME TEXT NOT NULL," +
"$COLUMN_USER_PASSWORD TEXT NOT NULL" +
")"
db.execSQL(createUserTableSql)
// 创建登录状态表
val createLoginStatusTableSql = "CREATE TABLE IF NOT EXISTS $TABLE_LOGIN_STATUS (" +
"$COLUMN_LOGIN_STATUS_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"$COLUMN_LOGIN_STATUS_USER_ID INTEGER NOT NULL," +
"$COLUMN_LOGIN_STATUS_LOGIN_TIME INTEGER NOT NULL" +
")"
db.execSQL(createLoginStatusTableSql)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
// 数据库升级操作
}
}
```
在这个DatabaseHelper类中,我们定义了两张表,一张是用于存储用户信息的表,包含id、name、password三个字段;另一张是用于记录登录状态的表,包含id、user_id、login_time三个字段。
在onCreate方法中,我们通过SQL语句创建这两张表。当创建表的SQL语句执行失败时,会抛出异常。如果表已经存在,则不会执行创建操作。在实际开发中,我们也可以在onUpgrade方法中进行数据库升级操作。
阅读全文