**greenDAO3 项目搭建与增删改查操作** greenDAO 是一个流行的对象关系映射(ORM)库,专门用于Android平台,它使得在Android应用中处理SQLite数据库变得更加简便。greenDAO3是其第三个主要版本,引入了一些改进和优化,提高了性能和易用性。 ### 1. **greenDAO3 的安装与集成** 你需要在你的项目的build.gradle文件中添加greenDAO3的依赖。通常,你会在app模块的build.gradle中添加如下依赖: ```groovy dependencies { implementation 'org.greenrobot:greendao:3.2.2' } ``` 记得执行`Gradle Sync`以确保依赖项被正确添加。 ### 2. **生成实体类** greenDAO3通过代码生成来创建与数据库表对应的Java实体类。你需要创建一个`DaoGenerator`类,并指定数据库版本、数据库名和目标生成目录。例如: ```java public class DaoGenerator { public static void main(String[] args) throws Exception { Schema schema = new Schema(1, "com.example.yourproject.db"); // 添加实体类,例如User Entity user = schema.addEntity("User"); user.addStringProperty("name").notNull().unique(); user.addIntProperty("age"); DaoCodeStyleConfig codeStyleConfig = new DaoCodeStyleConfig(); codeStyleConfig.setUseGettersForProperties(false); codeStyleConfig.setUseSettersForProperties(false); new DaoGenerator().generateAll(schema, "src/main/java"); } } ``` 运行这个主方法,greenDAO会自动生成`UserDao`和`User`类。 ### 3. **数据库的初始化** 在你的应用程序中,你需要创建一个`OpenHelper`的子类,如`DatabaseOpenHelper`,并重写`onCreate()`和`onUpgrade()`方法来初始化数据库和升级版本: ```java public class DatabaseOpenHelper extends DaoOpenHelper { public DatabaseOpenHelper(Context context, String name) { super(context, name, null, DATABASE_VERSION); } @Override public void onCreate(SupportSQLiteDatabase db) { generateSchema(db); } @Override public void onUpgrade(SupportSQLiteDatabase db, int oldVersion, int newVersion) { super.onUpgrade(db, oldVersion, newVersion); // 根据需要进行数据库升级操作 } private void generateSchema(SupportSQLiteDatabase db) { getDaoSession().getDatabase().executeSql("CREATE TABLE IF NOT EXISTS (...)"); // 使用greenDAO生成的表结构 } } ``` ### 4. **增删改查操作** #### - 插入(Insert) ```java User user = new User(); user.setName("John Doe"); user.setAge(30); getUserDao().insert(user); ``` #### - 查询(Select) ```java List<User> users = getUserDao().loadAll(); // 获取所有用户 User john = getUserDao().queryBuilder() .where(UserDao.Properties.Name.eq("John Doe")) .build() .unique(); // 获取名字为"John Doe"的用户 ``` #### - 更新(Update) ```java john.setAge(31); getUserDao().update(john); ``` #### - 删除(Delete) ```java getUserDao().delete(john); // 删除特定对象 getUserDao().deleteByKey(john.getId()); // 删除指定ID的对象 getUserDao().deleteAll(users); // 删除所有对象 ``` ### 5. **事务处理** greenDAO3支持事务处理,这对于执行多个操作时保证数据一致性至关重要: ```java getDaoSession().runInTransaction(new Runnable() { @Override public void run() { try { // 在这里进行一系列操作 User user1 = new User(); user1.setName("User1"); user1.setAge(20); getUserDao().insert(user1); User user2 = new User(); user2.setName("User2"); user2.setAge(21); getUserDao().insert(user2); } catch (Exception e) { // 如果出现异常,事务将被回滚 } } }); ``` ### 6. **缓存与性能优化** greenDAO 提供了缓存机制,可以减少不必要的数据库访问,提高性能。默认情况下,当对象加载时会被自动缓存,再次请求相同的对象时会从缓存中获取。你可以根据需求调整缓存策略。 greenDAO3简化了Android应用中的SQLite数据库操作,提供了高效且易于使用的API,让开发者可以专注于业务逻辑而不是数据库底层实现。通过以上步骤,你可以快速地在项目中搭建greenDAO3,并实现增删改查等基本功能。
- 1
- 粉丝: 1w+
- 资源: 122
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助