如何在Android应用程序中设置和连接到本地SQLite数据库?
时间: 2024-11-25 08:15:02 浏览: 0
在Android应用程序中设置和连接到本地SQLite数据库通常需要以下几个步骤:
1. **添加依赖**:
在`build.gradle`文件(Module-level)中添加对 SQLite 和 Room 的支持,如果尚未添加:
```groovy
implementation 'androidx.room:room-runtime:2.4.0'
kapt 'androidx.room:room-compiler:2.4.0'
implementation 'androidx.sqlite:sqlite-jdbc:3.36.0'
```
2. **创建数据模型**(Entity):
定义一个或多个代表数据库表的`DataModel`类,例如:
```java
@Entity(tableName = "users")
public class User {
@PrimaryKey(autoGenerate = true)
private int id;
private String name;
// getters and setters...
}
```
3. **定义DAO(Database Access Object)**:
这是用来操作数据库的方法集合,例如:
```java
@Dao
interface UserRepository {
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insert(User user);
@Query("SELECT * FROM users WHERE id = :id")
User getUserById(int id);
}
```
4. **定义RoomDatabase**:
创建一个`@Database`注解的类作为数据库入口点,例如:
```java
@Database(entities = {User.class}, version = 1)
abstract class AppDatabase extends RoomDatabase {
abstract UserRepository userRepository();
}
```
5. **初始化数据库**:
在Application或Activity的生命周期管理处,注入并打开数据库:
```java
private lateinit var appDatabase: AppDatabase;
override fun onCreate() {
super.onCreate();
appDatabase = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "app_database"
).allowMainThreadQueries().build()
}
fun getUserRepository(): UserRepository {
return appDatabase.userRepository()
}
```
6. **插入、查询和更新数据**:
使用DAO方法来操作数据库,例如:
```java
val newUser = User(name = "Alice");
userRepository().insert(newUser);
val user = userRepository().getUserById(newUser.id); // 查询用户
```
7. **注意事务和保存点**:
对于复杂操作,可以使用`runInTransaction()`方法。
阅读全文