1、添加依赖(目前是最新版本)
compile'org.greenrobot:greendao:3.2.0' compile'org.greenrobot:greendao-generator:3.2.0'
2、在项目的app中的build.grade中添加
apply plugin: 'org.greenrobot.greendao' greendao { //数据库的schema版本,也可以理解为数据库版本号 schemaVersion 4 //设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。 daoPackage 'cn.hnshangyu.testgreendao.greendao' //设置DaoMaster、DaoSession、Dao目录 targetGenDir 'src/main/java' } dependencies { compile 'org.greenrobot:greendao:3.2.0' }3、在项目的project中的build.grade中添加4、准备工作已完成,接下来就是使用了首先定义一个对象,给一些字段@Entity public class Student { @Id private Long id; private String name; private String couse; private int mathSoucre; private int englishSouce; private int chinaSouce;}
点击编译,这个时候AS会自动生成下面对数据库的操作类,以及补全Student类中属性的get和set方法
然后一般在MyApplication中对数据库进行一些初始化设置
public class MyApplication extends Application { private DaoMaster.DevOpenHelper mHelper; private SQLiteDatabase db; private DaoMaster mDaoMaster; private DaoSession mDaoSession; public static MyApplication instances; @Override public void onCreate() { super.onCreate(); instances = this; setDatabase(); } public static MyApplication getInstances(){ return instances; } /** * 设置greenDao */ private void setDatabase() { // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。 // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。 // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。 // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。 mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null); db = mHelper.getWritableDatabase(); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(); } public DaoSession getDaoSession() { return mDaoSession; } public SQLiteDatabase getDb() { return db; } }之后就可以直接来对数据库进行操作了对数据库进行插入操作
Student student = new Student((long)1,"chen","chinese",50,60,70); StudentDao mDao = MyApplication.getInstances().getDaoSession().getStudentDao(); mDao.insertOrReplace(student);在这里要注意一下,插入操作也可以使用吗Dao.insert(student),但是这个时候如果你的主键ID是重复的话就会抛出异常,所以建议还是使用mDao.insertOrReplace(student)来操作。在使用的过程中,你突然想再增加一张表或者是一个字段,这个时候,你依然只是需要增加字段或者一个对象,然后编译,AS会自动补全对应的对这个表或字段的操作方法,不需要你去关心,个人在使用的时候,增加字段,再去运行这个时候是会抛出异常的,说你新加的字段或者表不存在,这个时候你就需要去更新数据库的版本了,也就是build.grade中的schemaVersion 4,这个时候就不会再有这个异常了。