file-type

GreenDao框架实践:增删改查案例源码详解

ZIP文件

4星 · 超过85%的资源 | 下载需积分: 10 | 26.12MB | 更新于2025-02-14 | 179 浏览量 | 175 下载量 举报 2 收藏
download 立即下载
GreenDao是一个在Android平台上广泛使用且性能优秀的对象关系映射(ORM)框架,它能将Java对象与数据库中的表进行映射,使得开发者可以使用Java对象和API进行数据库操作,从而降低数据库操作的复杂性。本篇文档将详细阐述快速入门GreenDao框架的基础知识点,并通过一个具体案例代码来实现数据库的增删改查操作。 ### 1. GreenDao简介 GreenDao框架由greenrobot公司开发,其主要特点包括: - 高性能:GreenDao采用了代码生成的方式,减少了运行时的反射调用,极大地提升了查询速度。 - 易用性:通过注解的方式可以方便地定义实体类与数据库表之间的映射关系。 - 轻量级:生成的代码量小,占用资源少。 - 可扩展性:支持自定义数据库操作,方便集成其他功能。 ### 2. 环境准备 在开始使用GreenDao之前,需要准备以下环境: - JDK:推荐使用JDK 1.7或更高版本。 - Android Studio:作为Android开发的IDE,建议使用最新稳定版本。 - Android SDK:确保Android SDK工具和API级别是最新的。 - Gradle构建系统:GreenDao支持Gradle构建方式。 ### 3. 引入GreenDao依赖 要在项目中使用GreenDao,需要在项目的`build.gradle`文件中添加GreenDao的依赖库: ```gradle dependencies { implementation 'org.greenrobot:greendao:3.2.2' // 使用最新版本的GreenDao } ``` ### 4. 配置GreenDao GreenDao的配置包括实体类的映射、数据库的创建以及DAO(数据访问对象)的生成,这些可以通过GreenDao提供的代码生成器来完成。 #### 4.1 实体类创建 首先需要定义一个实体类,并在其中声明需要映射的数据库字段。通常使用注解来标注实体类及字段。 ```java @Entity public class User { @Id(autoincrement = true) private Long id; private String name; private int age; // getters and setters } ``` #### 4.2 数据库帮助类的创建 在`AndroidManifest.xml`中声明GreenDao的数据库帮助类,这是操作数据库的入口。 ```xml <meta-data android:name="com.example.greendaoGREENDAO数据库帮助类" android:value="com.example.greendao.database.DBHelper" /> ``` #### 4.3 代码生成器的配置和运行 GreenDao的代码生成器位于greendao-generator.jar包中。通常在`build.gradle`中定义一个task来自动执行代码生成器。 ```gradle apply plugin: 'org.greenrobot.greendao' greendao { schemaVersion 1 daoPackage 'com.example.greendao.dao' targetGenDir 'src/main/java' } ``` 运行gradle任务,自动生成对应的DAO接口和entity基类。 ### 5. 增删改查操作 GreenDao通过DAO接口简化数据库的CRUD操作。 #### 5.1 增加操作(Create) 通过`getDaoSession().insert(user);`来将对象插入到数据库中。 #### 5.2 删除操作(Delete) 通过`getDaoSession().delete(user);`来从数据库中删除对象。 #### 5.3 更新操作(Update) 通过`getDaoSession().update(user);`来更新数据库中已存在的对象。 #### 5.4 查询操作(Query) 查询操作有多种方法,例如: - `getDaoSession().load(id)`根据ID查询 - `getDaoSession().queryRaw`执行原生SQL查询 - `getDaoSession().queryBuilder()`构建复杂查询 ### 6. 示例源码解析 在名为CastielGreenDao的压缩包子文件中,通过一个示例项目来展示如何实现上述的增删改查操作。首先需要初始化GreenDao数据库,然后在Activity或Fragment中通过DAO接口进行具体的数据操作。 ```java public class UserDao extends DaoSession { // 使用DaoSession中的方法执行具体操作 public List<User> getAllUsers() { return queryBuilder().list(); } } ``` 接下来,在相应的Activity中使用UserDao执行数据操作: ```java UserDao userDao = new UserDao(getDaoSession()); // 增加 User newUser = new User(); newUser.setName("John"); userDao.insert(newUser); // 删除 userDao.delete(newUser); // 更新 newUser.setAge(25); userDao.update(newUser); // 查询 List<User> users = userDao.getAllUsers(); ``` ### 7. 总结 本篇文档详细介绍了如何快速入门GreenDao框架并实现增删改查的案例源码。从GreenDao的简介、环境准备、引入依赖,到实体类的创建、数据库帮助类的创建、代码生成器的配置和运行,最后是通过一个示例源码展示了具体的增删改查操作,为GreenDao的初学者提供了一个完整的入门到实践的指导。掌握GreenDao框架,能够有效提升Android数据库操作的效率和便捷性。

相关推荐

猴子搬来的救兵Castiel
  • 粉丝: 3572
上传资源 快速赚钱

资源目录

GreenDao框架实践:增删改查案例源码详解
(1377个子文件)
MediaSessionCompat.aidl 787B
R$color.class 6KB
R$dimen.class 5KB
R$styleable.class 21KB
R$styleable.class 21KB
R$layout.class 4KB
R$style.class 21KB
R$attr.class 11KB
app-debug-unaligned.apk 1.59MB
resources-debug-androidTest.ap_ 762B
R$dimen.class 5KB
R$style.class 21KB
PlaybackStateCompat.aidl 688B
DaoSession.class 6KB
Student.class 5KB
R$drawable.class 4KB
R$styleable.class 20KB
R$dimen.class 5KB
BaseApplication.class 15KB
R$attr.class 9KB
R$id.class 5KB
BaseApplication.class 15KB
R$styleable.class 20KB
R$id.class 4KB
DaoMaster.class 5KB
outputFileStates.bin 20KB
R$style.class 20KB
R$style.class 21KB
R$color.class 6KB
R$dimen.class 6KB
R$attr.class 9KB
DaoMaster$OpenHelper.class 4KB
StudentDao.class 12KB
CastielActivity.class 34KB
DaoSession.class 6KB
fileHashes.bin 142KB
R$style.class 20KB
DaoMaster.class 5KB
CastielActivity$3.class 4KB
R$style.class 20KB
StudentDao.class 5KB
CastielActivity$5.class 4KB
app-debug.apk 1.59MB
RatingCompat.aidl 673B
CastielActivity.class 5KB
R$dimen.class 6KB
R$attr.class 11KB
CastielActivity.class 34KB
R$styleable$override.class 14KB
R$drawable.class 4KB
R$layout.class 4KB
R$dimen.class 6KB
Student.class 5KB
fileSnapshots.bin 4.49MB
StudentDao.class 12KB
R$layout.class 4KB
R$id.class 6KB
R$attr.class 11KB
R$drawable.class 6KB
R$attr.class 9KB
DaoMaster$DevOpenHelper.class 4KB
taskArtifacts.bin 125KB
StudentAdapter.class 7KB
R$style$override.class 15KB
R$dimen.class 5KB
StudentAdapter.class 7KB
R$drawable.class 4KB
R$id.class 6KB
resources-debug.ap_ 461KB
R$drawable.class 4KB
StudentDao.class 5KB
R$id.class 5KB
gradlew.bat 2KB
MediaMetadataCompat.aidl 680B
R$attr.class 9KB
R$styleable.class 20KB
R$style.class 21KB
R$styleable.class 21KB
DaoMaster$OpenHelper.class 4KB
CastielActivity.class 5KB
R$layout.class 4KB
R$style.class 20KB
DaoMaster$DevOpenHelper.class 4KB
R$drawable.class 6KB
StudentAdapter$override.class 7KB
ResultReceiver.aidl 675B
R$styleable.class 20KB
R$color.class 6KB
R$drawable.class 6KB
R$color.class 6KB
R$drawable.class 6KB
ParcelableVolumeInfo.aidl 689B
CastielActivity$3.class 4KB
R$dimen.class 6KB
CastielActivity$2.class 4KB
CastielActivity$override.class 8KB
CastielActivity$2.class 4KB
R$attr.class 11KB
R$styleable.class 21KB
CastielActivity$5.class 4KB
共 1377 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 14