GreenDao的使用

    xiaoxiao2021-03-25  125

    GreenDao数据库的优势

    存取速度快支持数据库加密轻量级激活实体支持缓存代码自动生成

    总结:效率很高,插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite(也是一个数据库框架)的4.5倍,目前git上一直在做更新维护,start数量为11K多。

    GreenDao数据库的使用

    github地址

    第一步: 在项目build.gradle文件里面添加

    buildscript { repositories { jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:3.1.1' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } }

    第二步:在app/build.gradle里面添加

    apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin android { greendao { schemaVersion 1 daoPackage 'com.test.pan.greendao.gen' targetGenDir 'src/main/java' } } dependencies { implementation 'org.greenrobot:greendao:3.2.2' // add library }

    第三步: 添加Bean类

    @Entity public class UserBean { @Id(autoincrement = true) private int id; public String name; public String phone; }

    第四步:编译项目,UserBean 实体类会自动编译,生成get、set方法并且会在com.test.pan.greendao.gen目录下生成三个文件

    第五步:创建数据库操作类

    public class DataBaseManager { private static DataBaseManager sDatabaseManager; private UserBeanDao mUserDao; private Context mContext; public DataBaseManager(Context context) { mContext = context; } public static DataBaseManager getInstance(Context context) { if (sDatabaseManager == null) { synchronized (DataBaseManager.class) { if (sDatabaseManager == null) { sDatabaseManager = new DataBaseManager(context); sDatabaseManager.init(); } } } return sDatabaseManager; } private void init() { //先拿到daosession DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(mContext, "test-db"); //第二个参数是数据库名 DaoMaster daoMaster = new DaoMaster(openHelper.getWritableDatabase()); DaoSession daoSession = daoMaster.newSession(); mUserDao = daoSession.getUserBeanDao(); } /** * 查询所有联系人的名字 */ public List<String> queryAllContacName(){ List<String> names = new ArrayList<>(); List<UserBean> contactList = mUserDao.queryBuilder().list(); for(int i=0;i<contactList.size();i++){ names.add(contactList.get(i).getName()); } return names; } /** * 插入数据 */ public void insertUser(List<UserBean> userList) { for(UserBean contact: userList){ mUserDao.insert(contact); } } /** * 删除所有数据 */ public void deleteAllContacts() { mUserDao.deleteAll(); } /** * 根据筛选条件查询一条记录 */ public List<String> queryOne(String name) { List<String> result = new ArrayList<>(); List<UserBean> list = mUserDao.queryBuilder().where(UserBeanDao.Properties.Name.like("%" + name + "%")).list(); for (int i = 0; i < list.size(); i++) { UserBean user = list.get(i); result.add(user.getPhone()); } return result; } }
    转载请注明原文地址: https://ju.6miu.com/read-6972.html

    最新回复(0)