Android中数据库操作框架greenDAO介绍与使用
2018-02-06 13:53
831 查看
greenDAO是一个轻量化且快速的ORM框架,专门为Android高度优化和定制的,它能够支持每秒数千记录的CRUD操作。我们从官网上面一张Benchmark图可以看出它与ormlite和ActiveAndroid的性能对比,
添加依赖:
实体类生成
@Entity 表明这个实体类会在数据库中生成一个与之相对应的表。
@Id 对应数据表中的 Id 字段,有了解数据库的话,是一条数据的唯一标识。且数据类型必须为Long类型
@Property(nameInDb = “STUDENTNUM”) 表名这个属性对应数据表中的 STUDENTNUM 字段。
@Property 可以自定义字段名,注意外键不能使用该属性
@NotNull 该属性值不能为空
@Transient 该属性不会被存入数据库中
@Unique 表名该属性在数据库中只能有唯一值
当你写完实体类中的属性之后,点击编译,就会自动生成相应的 setter 和 getter 方法,至于那些 hash 值是自动赋值上去的。并且在该目录下生成 DaoMaster 和 DaoSession 这两个类用于初始化数据库。
增删改查
一般数据库的操作都离不开增删改查,那么我们就从这开始。
初始化
如果实体类有更新,那么要调用 daoSession.clear() 清除缓存,才能得到更新。
增
删
改:
查:
参考
代码
添加依赖:
// In your root build.gradle file: buildscript { repositories { jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } } // In your app projects build.gradle file: apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin dependencies { compile 'org.greenrobot:greendao:3.2.2' // add library }
实体类生成
@Entity public class User { @Id(autoincrement = true) private Long userId; @Property(nameInDb = "userName") private String userName; @Property(nameInDb = "age") private int age; @Property(nameInDb = "addr") private String addr; @Generated(hash = 2044495610) public User(Long userId, String userName, int age, String addr) { this.userId = userId; this.userName = userName; this.age = age; this.addr = addr; } @Generated(hash = 586692638) public User() { } public Long getUserId() { return this.userId; } public void setUserId(Long userId) { this.userId = userId; } public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public String getAddr() { return this.addr; } public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { return "User{" + "userId=" + userId + ", userName='" + userName + '\'' + ", age=" + age + ", addr='" + addr + '\'' + '}'; } }
@Entity 表明这个实体类会在数据库中生成一个与之相对应的表。
@Id 对应数据表中的 Id 字段,有了解数据库的话,是一条数据的唯一标识。且数据类型必须为Long类型
@Property(nameInDb = “STUDENTNUM”) 表名这个属性对应数据表中的 STUDENTNUM 字段。
@Property 可以自定义字段名,注意外键不能使用该属性
@NotNull 该属性值不能为空
@Transient 该属性不会被存入数据库中
@Unique 表名该属性在数据库中只能有唯一值
当你写完实体类中的属性之后,点击编译,就会自动生成相应的 setter 和 getter 方法,至于那些 hash 值是自动赋值上去的。并且在该目录下生成 DaoMaster 和 DaoSession 这两个类用于初始化数据库。
增删改查
一般数据库的操作都离不开增删改查,那么我们就从这开始。
初始化
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "user", null); DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb()); daoSession = daoMaster.newSession();
如果实体类有更新,那么要调用 daoSession.clear() 清除缓存,才能得到更新。
增
public void add(User user){ UserDao userDao = daoSession.getUserDao(); userDao.insert(user); }
删
public void delete(User user){ UserDao userDao = daoSession.getUserDao(); userDao.delete(user);//通过实体删除 //userDao.deleteByKey(user.getUserId());//通过主键删除 }
改:
public void update(User user){ UserDao userDao = daoSession.getUserDao(); userDao.update(user); }
查:
public List<User> query(User user){ UserDao userDao = daoSession.getUserDao(); List<User> users=userDao.queryBuilder() .offset(1) .limit(3) .orderAsc(UserDao.Properties.UserName) .where(UserDao.Properties.UserName.eq(user.getUserName())) .build() .list(); return users; } public List<User> queryAll(){ UserDao userDao = daoSession.getUserDao(); List<User> users = userDao.queryBuilder().list(); return users; }
参考
代码
相关文章推荐
- Android操作数据库的框架-GreenDao基本使用记录
- Android中数据库操作框架DBFlow介绍与使用
- android高效ORM数据库框架greenDao使用
- Android GreenDao数据库框架使用
- Android数据库框架GreenDAO的使用&Demo
- Android中数据库操作框架Ormlite介绍与使用
- Android Studio平台使用GreenDao操作数据库
- Android中数据库操作框架Realm介绍与使用
- Android整合网上资源以及个人对GreenDao数据库框架的理解与使用(android-studio开发)
- 【Android】ORM数据库框架之GreenDao快速入门与使用
- Android 操作数据库的框架——greenDAO的学习
- Android中数据库操作框架ActiveAndroid介绍与使用
- Android 操作数据库的框架——greenDAO的学习
- Android数据库操作第三方库GreenDao的使用
- Android数据库操作--greenDAO的入门使用
- Android数据库框架GreenDao封装使用,易理解、易扩展
- [置顶] Android数据库GreenDAO3.2.2的使用(三,GreenDao操作外部数据库----操作.db数据库)
- Android的用GreenDao操作数据库
- Android 初使用GreenDAO框架操作数据库
- 使用android快速开发框架afinal的FinalDb操作android数据库