Greendao在安卓开发中主要作用是数据库的操作,是一种安卓的轻量级数据库框架。使用Greendao可以简化一些数据库操作的基本代码,很多数据库的操作方法都是已经封装好的,现在我们就来说说一些有关Greendao的简单配置和简单的使用方法。
配置:1、首先需要在project工程下面的build.gradle的文件里面的dependencies的大括号里面写入
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' 这个地方是导入需要的jar包,这里我们使用3.1.0的版本Greendao的框架
2、在app的工程下面的build.gradle文件里面的apply plugin: 'XXXX.XXX.XXXX.XXXX'下面输入apply plugin: 'org.greenrobot.greendao',在buildTypes里面写入greendao{ schemaVersion 1 targetGenDir 'src/main/java' },记住是buildTypes里面,而不是release里面;buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } greendao{ schemaVersion 1 targetGenDir 'src/main/java' 这个地方是自动生成的配置文件存放在哪个位置的 } }在dependencies里面输入compile 'org.greenrobot:greendao:3.1.0',这就表明是引用这个框架了,那么配置完成了3、创建一个类,类里面的属性就是数据库创建的属性,比如创建了一个user的类,里面有name,age等属性,那么自动生成的数据库和配置文件里面也都是这些名字的,在类名上输入@Entity表示是需要使用这个类来创建,使用id的话,则需要创建一个使用Long类型的id作为主键,而不是long类型的,Greendao则会使主键id自增长,还需要在Long id上面输入@Id,这则是告诉Greendao这个是需要设置的主键。那么类创建好了,点击Build->Make Project,然后等待自动生成,生成好之后则可以看到DaoMaster等文件生成了。
4、创建数据库的管理类;直接上代码。
public class DBManager { private final static String dbName = "User_db"; //数据库的名字 private static DBManager mInstance; private DaoMaster.DevOpenHelper openHelper; private Context context; public DBManager(Context context) { this.context = context; openHelper = new DaoMaster.DevOpenHelper(context, dbName, null); } /** * 初始化管理类 */ public static DBManager getInstance(Context context) { if (mInstance == null) { synchronized (DBManager.class) { if (mInstance == null) { mInstance = new DBManager(context); } } } return mInstance; } /** * 可读方法时调用 */ private SQLiteDatabase getReadableDatabase() { if (openHelper == null) { openHelper = new DaoMaster.DevOpenHelper(context, dbName, null); } SQLiteDatabase db = openHelper.getReadableDatabase(); return db; } /** *可写方法时调用 */ private SQLiteDatabase getWritableDatabase() { if (openHelper == null) { openHelper = new DaoMaster.DevOpenHelper(context, dbName, null); } SQLiteDatabase db = openHelper.getWritableDatabase(); return db; } /** * 插入一条记录 * * @param user */ public void insertUser(username user) { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); usernameDao userDao = daoSession.getUsernameDao(); userDao.insert(user); } /** * 删除全部记录 */ public void deleteUser() { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); usernameDao userDao = daoSession.getUsernameDao(); userDao.deleteAll(); } /** * 更新一条记录 * * @param user */ public void updateUser(username user) { DaoMaster daoMaster = new DaoMaster(getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); usernameDao userDao = daoSession.getUsernameDao(); userDao.update(user); } /** * 查询用户列表 */ public List<username> queryUserList() { DaoMaster daoMaster = new DaoMaster(getReadableDatabase()); DaoSession daoSession = daoMaster.newSession(); usernameDao userDao = daoSession.getUsernameDao(); QueryBuilder<username> qb = userDao.queryBuilder(); List<username> list = qb.list(); return list; } }5、写好方法之后,就在MainActivity里面开始调用方法,首先需要声明一个private DBManager manager;然后初始化manager=new DBManager(MainActivity.this);之后就可以调用了,例如//删除的方法 manager.deleteUser(); //删除的方法 private void queryData(){ List<username> list=manager.queryUserList(); for (int i=0;i<list.size();i++){ Log.d("rrr",list.get(i).getName()); } }数据库的操作和配置就完成了