Android ORM 框架之 greenDAO

微笑绽放 2024-05-23 ⋅ 18 阅读

什么是 ORM

Object-Relational Mapping(对象-关系映射)简称 ORM,通过将对象与关系数据库中的表建立映射关系,将数据从对象转换为关系型数据库的形式,从而实现对数据库的操作。

ORM 框架可以帮助 Android 开发者简化数据库操作,减少冗余的代码,并提高开发效率。

greenDAO 简介

greenDAO 是一个轻量级的 Android ORM 框架,专注于性能和易用性。它拥有以下特点:

  1. 高性能:greenDAO 在数据读写上做了很多优化,可以提供快速的数据库操作。
  2. 易用性:greenDAO 的 API 设计简洁明了,学习和使用都非常方便。
  3. 小巧: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,并在你的项目中使用它来简化数据库操作。


全部评论: 0

    我有话说: