简介:android连接数据库实例
android连接数据库实例
在现代的移动应用开发中,连接并操作数据库是非常常见的需求。尤其是在Android平台上,使用适当的策略和工具,我们能够高效地连接和操作数据库。以下是一个Android连接数据库的实例,这个实例使用了SQLite数据库和Room Persistence Library。
首先,让我们来理解一下“SQLite”和“Room Persistence Library”。
SQLite是一个轻量级的数据库,广泛用于移动应用开发。它是一个C语言库,提供了对SQL数据库的访问。
Room Persistence Library是Android平台上的一个官方库,用于简化与SQLite数据库的交互。它提供了一组注解和接口,使得我们可以以对象关系映射(ORM)的方式操作数据库。
以下是一个简单的步骤和代码示例:
build.gradle文件中添加Room Persistence Library的依赖:
dependencies {// ...implementation 'androidx.room2.2.5'
annotationProcessor 'androidx.room2.2.5'
}
User实体:
@Entity(tableName = "users")public class User {@PrimaryKey(autoGenerate = true)private int id;private String name;private String email;// 省略getter和setter...}
然后定义DAO:
@Database(entities = {User.class}, version = 1)public abstract class AppDatabase extends RoomDatabase {public abstract UserDao userDao();}
@Daopublic interface UserDao {@Insert(onConflict = OnConflictStrategy.REPLACE) // 如果你希望在冲突时替换现有记录,可以使用这个注解void insertUser(User user);@Update(onConflict = OnConflictStrategy.REPLACE) // 如果你希望在冲突时替换现有记录,可以使用这个注解void updateUser(User user);@Deletevoid deleteUser(User user);@Query("SELECT * FROM users") // 使用Room Persistence Library的查询语法非常简洁和直观。你不需要自己写SQL查询语句。List<User> getAllUsers(); // 这会返回所有的用户数据列表。这是一个方便的封装,你可以通过它获取、修改、删除用户数据。}
``java
@Override public void onCreate(Bundle savedInstanceState) { …… …… } …… …… AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build(); Dao<User, Integer> dao = db.userDao(); // 使用DAO的方法进行数据库操作 } …… …… } …… …… // 使用DAO的方法进行数据库操作: Dao<User, Integer> dao = db.userDao(); dao.insert(new User()); dao.update(user); dao.delete(user); List<User> users = dao.getAllUsers(); …… …… } …… …… }Db db = Room.databaseBuilder(context, AppDatabase.class, “database-name”).build(); User user = new User(); user.setName(“Test User”); user.setEmail(“test@example.com”); AppDatabase appDatabase = db; UserDao userDao = appDatabase.userDao(); userDao.insert(user); // insert the user into the database userDao.update(user); // update the user in the database userDao.delete(user); // delete the user from the database ListRoom Database building by databaseBuilder() Rooms set up Room annotation processor that handles generated code