greendao

1.添加依赖

在Model 下 bulid.gradle文件下的dependencies下添加所需依赖

compile 'org.greenrobot:greendao:3.2.2' // add library
compile 'org.greenrobot:greendao-generator:3.2.2'

这句话是在上边写的 小渣渣啊→_→

apply plugin: 'org.greenrobot.greendao'

2.在project bulid.gradle下进行配置

   buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'//greenDao
        }
    }

3.在Model 下 bulid.gradle文件下的android在对greendao的generator生成文件进行配置

greendao {
        schemaVersion 1  //版本
        daoPackage '生成文件包名' // 一般为app包名+生成文件的文件夹名
        targetGenDir 'src/main/java' //生成文件路径
    }

例如:
greendao_第1张图片4.创建实体类
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = “NAME”)
private String name;

注意:编写完实体类以后在实体类界面下按下Ctrl+F9(Make project),程序会自动编译生成dao文件,生成的文件一共有三个。
5.使用Greendao
(1)创建一个application类,在application中完成DaoSession的初始化,避免以后重复初始化,便于使用。

package com.example.shopcrats.app;

import android.app.Application;
import android.database.sqlite.SQLiteDatabase;

import com.example.shopcrats.NetWrokProwor;
import com.example.shopcrats.greenbean.DaoMaster;
import com.example.shopcrats.greenbean.DaoSession;
import com.facebook.drawee.backends.pipeline.Fresco;


public class MyApplication extends Application {

    private static MyApplication App;
    private DaoMaster.DevOpenHelper data;
    private SQLiteDatabase writableDatabase;
    private DaoMaster daoMaster;
    private DaoSession daoSession;


    @Override
    public void onCreate() {
        super.onCreate();
        App = this;
        Fresco.initialize(this);
        NetWrokProwor.getNetWrokProwor(this);
        setDataBase();
    }

    public static MyApplication getInstance(){
        return App;
    }

    private void setDataBase() {
        //通过DaoMaster的内部类DevOpenHelper
        data = new DaoMaster.DevOpenHelper(this, "data", null);
        writableDatabase = data.getWritableDatabase();
        daoMaster = new DaoMaster(writableDatabase);
        daoSession = daoMaster.newSession();
    }


    public SQLiteDatabase getWritableDatabase() {
        return writableDatabase;
    }

    public DaoSession getDaoSession() {
        return daoSession;
    }
}

6.bean类(参数是自己要存入地方的参数)

package com.example.shopcrats;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;


@Entity
public class GreenDao {
   @Id(autoincrement = true)
   private Long id;
   private int CommentId;
   private String num;
   @Generated(hash = 1121101909)
   public GreenDao(Long id, int CommentId, String num) {
       this.id = id;
       this.CommentId = CommentId;
       this.num = num;
   }
   @Generated(hash = 766040118)
   public GreenDao() {
   }
   public Long getId() {
       return this.id;
   }
   public void setId(Long id) {
       this.id = id;
   }
   public int getCommentId() {
       return this.CommentId;
   }
   public void setCommentId(int CommentId) {
       this.CommentId = CommentId;
   }
   public String getNum() {
       return this.num;
   }
   public void setNum(String num) {
       this.num = num;
   }


}

7.主页面

package com.example.shopcrats;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ExpandableListView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.shopcrats.adapter.ExAdapter;
import com.example.shopcrats.app.MyApplication;
import com.example.shopcrats.bean.CountPrice;
import com.example.shopcrats.bean.GoodsBean;
import com.example.shopcrats.bean.MessageEvent;
import com.example.shopcrats.greenbean.GreenDaoDao;
import com.example.shopcrats.presenter.Presenter;
import com.example.shopcrats.view.View_MianActivity;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements View_MianActivity{

    private ExpandableListView MyExpandableListView;
    private CheckBox quanxuancheck;
    private TextView allprice;
    private Button jiesuan;
    private Presenter presenter;
    private ExAdapter exAdapter;
    private GreenDaoDao greenDaoDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        greenDaoDao = MyApplication.getInstance().getDaoSession().getGreenDaoDao();
        boolean netWrokProwor = NetWrokProwor.getNetWrokProwor(this);
        if(netWrokProwor){
            initData();
        }else{
            Toast.makeText(this, "请检查网络", Toast.LENGTH_SHORT).show();
        }


            if(!EventBus.getDefault().isRegistered(true)){
                EventBus.getDefault().register(this);
            }
    }


    private void initView() {
        MyExpandableListView = findViewById(R.id.MyExpandableListView);
        quanxuancheck = findViewById(R.id.quanxuancheck);
        allprice = findViewById(R.id.allprice);
        jiesuan = findViewById(R.id.jiesuan);


        quanxuancheck.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取当前条目状态
                boolean allcheckbox = exAdapter.isAllcheckbox();
                //给条目复制
                exAdapter.isAllCheckBox(!allcheckbox);
                //刷新
                exAdapter.notifyDataSetChanged();
            }
        });
    }


    private void initData() {
        presenter = new Presenter(this);
        Map map = new HashMap<>();
        map.put("uid","71");
        presenter.request(map);
    }


    @Override
    public void onSuccess(List data) {
        for(int i = 0 ; i < data.size() ; i++){
            GoodsBean.DataBean dataBean = data.get(i);
            List list = dataBean.getList();
            for (int j = 0 ; j < list.size() ; j++){
                GoodsBean.DataBean.ListBean listBean = list.get(j);
                GreenDao greenDao = new GreenDao(null, listBean.getPscid(), listBean.getNum() + "");
                greenDaoDao.insert(greenDao);
            }
        }
        exAdapter = new ExAdapter(data,this);
        MyExpandableListView.setAdapter(exAdapter);
        List greenDaos = greenDaoDao.loadAll();
        for (int i = 0 ; i < greenDaos.size() ; i++){
            GreenDao greenDao = greenDaos.get(i);
            int commentId = greenDao.getCommentId();
            String num = greenDao.getNum();
            Log.e("lsq","商品id:"+commentId+"----商品数量:"+num);
        }
    }

    @Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
    public void onMessagesEvent(CountPrice countPrice){
        allprice.setText(countPrice.getPrice()+"");
        jiesuan.setText("去结算("+countPrice.getCount()+")");
    }

    @Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
    public void onMessagesEvent(MessageEvent messageEvent){
        quanxuancheck.setChecked(messageEvent.isCheck());
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(EventBus.getDefault().isRegistered(true)){
            EventBus.getDefault().unregister(this);
        }
        if(presenter != null){
            presenter = null;
        }
    }
}

你可能感兴趣的:(greendao)