GreenDao简单使用

greenDAO 优势

1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化

1.在build.gradle中进行配置,也就是项目的根路径添加依赖

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
2.module中的build.gradle 进行添加

// 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
}
3.
greendao {
    schemaVersion 1
    daoPackage 'com.bwie.myapplication.gen'//自己项目名和包名+gen
    targetGenDir 'src/main/java'
}
//使用

1.首先创建一个entity包,在创建一个bean类

2.make project 一下

3.会自动生成gen包

3.写工具类

public class GreenDaoUtils {
    private static GreenDaoUtils greenDaoUtils;
    private DaoMaster daoMaster;
    private DaoSession daoSession;
    private DaoMaster.DevOpenHelper devOpenHelper;
    private SQLiteDatabase database;

    //双重检验锁单例模式
    public static GreenDaoUtils getGreendaoutils(){
        if(greenDaoUtils==null){
            synchronized (GreenDaoUtils.class){
                if(greenDaoUtils==null){
                    greenDaoUtils=new GreenDaoUtils();
                }
            }
        }
        return greenDaoUtils;
    }
    //调用初始化的方法
    public  void init(){
        setDatebase();
    }

    //初始化greendao生成的几个重要对象
    public void setDatebase(){
        devOpenHelper=new DaoMaster.DevOpenHelper(MyApp.context,"Zou",null);
        database=devOpenHelper.getWritableDatabase();
        daoMaster=new DaoMaster(database);
        daoSession=daoMaster.newSession();
    }

    public DaoSession getDaoSession(){
        return daoSession;
    }
    public SQLiteDatabase getDatabase(){
        return database;
    }

}
5.创建MyApp类
public class MyApp extends Application {
    public static Context context;
    @Override
    public void onCreate() {
        super.onCreate();
        context=getApplicationContext();
        GreenDaoUtils.getGreendaoutils().init();
    }
}
6.实际操作

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.lv)
    ListView lv;
    private UserDao userDao;
    int aa;
    int bb;
    int cc;
    private List<User> users;
    private MyAdaper m;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        //拿到操作者
        DaoSession daoSession = GreenDaoUtils.getGreendaoutils().getDaoSession();
        //拿到执行者
        userDao = daoSession.getUserDao();
        users = userDao.loadAll();
        m = new MyAdaper(this,users);
        lv.setAdapter(m);
    }
    @OnClick({R.id.dan,R.id.pl,R.id.xiu,R.id.shan,R.id.cha1,R.id.cha2,R.id.fenye})
    public void btn(View v){
        switch (v.getId()){
            case R.id.dan:
                //单条添加
                userDao.insert(new User("小于"+(++aa),"24",null));
                show();
                break;
            case R.id.pl:
                //批量添加
                for (int i = 10; i < 31; i++) {
                    userDao.insert(new User("小于"+i,"24",null));
                }
                show();
                break;
            case R.id.xiu:
                //修改
                userDao.update(new User("小庄","25", (long) (++bb)));
                show();
                break;
            case R.id.shan:
                //删除
                userDao.deleteByKey((long) ++cc);
                show();
                break;
            case R.id.cha1:
                //查询主键下单条数据
                Query<User> build = userDao.queryBuilder()
                        .where(UserDao.Properties.Id.eq(20))
                        .build();
                users = build.list();
                m = new MyAdaper(this,users);
                lv.setAdapter(m);
                break;
            case R.id.cha2:
                //查询所有
                show();
                break;
            case R.id.fenye:
                //分页查询
                Query<User> build1 = userDao.queryBuilder().offset(10).limit(20).build();
                users=build1.list();
                m = new MyAdaper(this,users);
                lv.setAdapter(m);
                break;
        }
    }

    //查询的方法
    public void show(){
        users = userDao.loadAll();
        m = new MyAdaper(this,users);
        lv.setAdapter(m);
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置GreenDao,你需要按照以下步骤进行操作: 1. 在module级别的build.gradle文件中,将以下代码添加到文件的顶部: ``` apply plugin: 'org.greenrobot.greendao' ``` 2. 在同一个build.gradle文件中,添加以下配置到android模块下的greendao块中: ``` greendao { schemaVersion 1 // 设置数据库版本号,升级时可修改 daoPackage 'com.example.greendaodemo.db' // 设置生成的DAODaoMaster和DaoSession的包路径,默认与表实体所在的包路径相同 targetGenDir 'src/main/java' // 设置生成的源文件的路径,默认在build目录下的build/generated/source/greendao目录中 } ``` 3. 添加GreenDao的依赖库,将以下代码添加到dependencies块中: ``` implementation 'org.greenrobot:greendao:3.2.2' ``` 这样,你就完成了GreenDao的配置。如果需要生成GreenDao的代码,请确保你还添加了以下依赖库: ``` implementation 'org.greenrobot:greendao-generator:3.2.2' ``` 参考链接:<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GreenDao简单配置](https://blog.csdn.net/qq_42061290/article/details/82586342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [GreenDao配置](https://download.csdn.net/download/a511341250/9593713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [GreenDao配置文档](https://blog.csdn.net/chentaishan/article/details/105263937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值