什么是 ORM
Object-Relational Mapping(对象-关系映射)简称 ORM,通过将对象与关系数据库中的表建立映射关系,将数据从对象转换为关系型数据库的形式,从而实现对数据库的操作。
ORM 框架可以帮助 Android 开发者简化数据库操作,减少冗余的代码,并提高开发效率。
greenDAO 简介
greenDAO 是一个轻量级的 Android ORM 框架,专注于性能和易用性。它拥有以下特点:
- 高性能:greenDAO 在数据读写上做了很多优化,可以提供快速的数据库操作。
- 易用性:greenDAO 的 API 设计简洁明了,学习和使用都非常方便。
- 小巧:greenDAO 的库文件非常小,对 APK 大小影响不大。
greenDAO 使用步骤
1. 添加依赖
在项目的 build.gradle 文件中添加以下依赖:
dependencies {
implementation 'org.greenrobot:greendao:3.3.0'
}
2. 创建实体类
创建需要持久化的实体类,使用注解声明实体类的属性和关系:
@Entity
public class User {
@Id
private Long id;
private String name;
// 省略 getter 和 setter
}
3. 创建 DAO 类
使用 greenDAO 的代码生成器自动生成 DAO 类,用于操作数据库:
public class DaoGenerator {
public static void main(String[] args) throws Exception {
Schema schema = new Schema(1, "com.example.myapp.db");
Entity user = schema.addEntity("User");
user.addIdProperty();
user.addStringProperty("name").notNull();
new DaoGenerator().generateAll(schema, "./app/src/main/java");
}
}
运行 DaoGenerator
类,会在指定路径下自动生成 com.example.myapp.db
包及其对应的 DAO 类。
4. 初始化 greenDAO
在 Application 类中初始化 greenDAO,设置数据库名称和版本:
public class MyApplication extends Application {
private static final String DB_NAME = "myapp.db";
@Override
public void onCreate() {
super.onCreate();
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DB_NAME);
Database db = helper.getWritableDb();
DaoSession daoSession = new DaoMaster(db).newSession();
// 注入到全局使用
DBHelper.getInstance().init(daoSession);
}
}
5. 数据库操作
通过 DBHelper.getInstance().getDaoSession()
获取 DaoSession
对象,即可通过该对象进行数据库的增删改查操作:
UserDao userDao = DBHelper.getInstance().getDaoSession().getUserDao();
// 插入数据
User user = new User();
user.setName("Tom");
userDao.insert(user);
// 查询数据
List<User> userList = userDao.queryBuilder()
.where(UserDao.Properties.Name.eq("Tom"))
.list();
// 更新数据
User updateUser = userList.get(0);
updateUser.setName("Jerry");
userDao.update(updateUser);
// 删除数据
User deleteUser = userList.get(0);
userDao.delete(deleteUser);
总结
greenDAO 是一个优秀的 Android ORM 框架,它提供了高性能、易用性和轻量级的特点,能够帮助 Android 开发者更方便地进行数据库操作。通过上述的使用步骤,你可以快速上手 greenDAO,并在你的项目中使用它来简化数据库操作。
本文来自极简博客,作者:微笑绽放,转载请注明原文链接:Android ORM 框架之 greenDAO