前言
Android 本地数据库有很多,Sqlite、Dbutils、LitePa、GreenDao等,其他的几个数据库框架都用过了,GreenDao还未在项目中用过,所以在这里记录下GreenDao的基本使用。
一、添加GreenDao支持
1.1 在项目根目录下的build.gradle下的代码添加下列代码:
1.2 在module下build.gradle(这里是app下的build.gradle)中添加下列代码:
compile 'org.greenrobot:greendao:3.2.2'
并且在最上面添加
apply plugin: 'org.greenrobot.greendao' //新加的
1.3 在module下build.gradle android中配置greendao的信息
greendao { schemaVersion 1 //数据库版本号 daoPackage 'hlq.com.greendao.db'// 设置DaoMaster、DaoSession、Dao 包名 targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 基本上都是这个 }
我的目录如下:
二、创建数据库对应的实体类,以用户信息为例
2.1 新建一个User实体类,里面有id,name、pass、sex、age五个字段,如图所示:
这是一个普通的实体类,我们通过注解,可以让后续声称对应的表。
@Entity
表明这个实体类会在数据库中生成一个与之相对应的表
@Id
对应数据表中的 Id 字段
其他更多注解可以参考greendao官方网站:http://greenrobot.org/greendao/
添加完注解之后变成如下图所示:
如果我们想让id自增(一般id字段都自增),我们可以改为:
ps:这里的坑要注意,如果id自增的话,必须必须定义id类型为大写的Long,小写的会报错。
然后,生成对应的setter、getter和构造方法。
2.2 点击 Make Project(或者 Make Moudle ‘App’) 编译工程,会自动在配置的目录下生成daoseesion等。生成如图所示:
2.3 初始化 GreenDao,一般都在application中完成初始化操作(这里为了演示直接写在Activity中)
初始化操作主要就是获取dao,代码如下:
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"user,db"); SQLiteDatabase sqLiteDatabase = devOpenHelper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(sqLiteDatabase); DaoSession daoSession = daoMaster.newSession(); UserDao userDao = daoSession.getUserDao();
三、数据库操作
3.1 插入操作
User user = new User("黄林晴","123456","男",22); userDao.insert(user);
3.2 查询所有操作返回时实体类对应的List集合
userDao.loadAll();
为了验证3.1插入操作,我们打印出查询结果如下:
3.2 接下来我们再插入一条数据,再次打印如下:
打印出三条因为我们已经运行过一次了。
3.3 条件查询,以按姓名查找为例:
List<User> users = userDao.queryBuilder().where(UserDao.Properties.UserName.eq("Huanglinqing")).build().list();
打印结果如下:
我们看到只打印出来姓名为Huanglinqing的数据。
3.4 删除
userDao.deleteAll()
后续:其他操作就不一一演示了,需要的时候到官方网站去查询API就行了。