Greendao 使用

首先先到 主工程 build.gradle 下面添加

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

在App  的 build.gradle    添加依赖

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}
greendao {
    schemaVersion 1//数据库版本号
    daoPackage 'com.com.sky.downloader.greendao'//设置DaoMaster、DaoSession、Dao包名
    targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
    //targetGenDirTest:设置生成单元测试目录
    //generateTests:设置自动生成单元测试用例
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'org.greenrobot:greendao:3.2.2'
}

新建 Person  类

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

/**
 * Created by 王利博 on 2018/5/11.
 */


@Entity
public class Person {
    //id 自动增长
    @Id(autoincrement = true)
    private  Long id;
    @Property
    private String anme;
    @Property
    private  int age;
    @Generated(hash = 1632602881)   // Build>rebuild project
    public Person(Long id, String anme, int age) {
        this.id = id;
        this.anme = anme;
        this.age = age;
    }
    @Generated(hash = 1024547259)   // Build>rebuild project
    public Person() {
    }
    public void setId(Long id) {
        this.id = id;
    }

    public void setAnme(String anme) {
        this.anme = anme;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Long getId() {
        return id;
    }

    public String getAnme() {
        return anme;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", anme='" + anme + '\'' +
                ", age=" + age +
                '}';
    }
}

再建类  Myapp  继承Application

import android.app.Application;

import com.com.sky.downloader.greendao.DaoMaster;
import com.com.sky.downloader.greendao.DaoSession;

/**
 * Created by  on 2018/5/11.
 */

public class Myapp extends Application {
    private  static DaoSession daoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "person.db");
        DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());
        daoSession= daoMaster.newSession();
    }
    public static DaoSession getDaoSession() {
        return daoSession;
    }
}

在MainAvtivity 中

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

import com.com.sky.downloader.greendao.PersonDao;

import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    /**
     * Insert
     */
    private Button mAdd;
    /**
     * Delete
     */
    private Button mDelete;
    /**
     * Arlt
     */
    private Button mAlt;
    /**
     * Query
     */
    private Button mQuery;
    private PersonDao personDao;
    private  int a=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        personDao = Myapp.getDaoSession().getPersonDao();


    }

    private void initView() {
        mAdd = (Button) findViewById(R.id.add);
        mAdd.setOnClickListener(this);
        mDelete = (Button) findViewById(R.id.delete);
        mDelete.setOnClickListener(this);
        mAlt = (Button) findViewById(R.id.alt);
        mAlt.setOnClickListener(this);
        mQuery = (Button) findViewById(R.id.query);
        mQuery.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.add:
                method1();
                break;
            case R.id.delete:
                delete1();
                a++;
                if(a<20){
                    break;
                }
                break;
            case R.id.alt:
                alt();
                break;
            case R.id.query:
                select();
                break;
        }
    }

    private void alt() {

        Person person = new Person(2L, "芜湖大司马", 30);
        personDao.update(person);
    }

    private void delete1() {
        List<Person> list = personDao.queryBuilder().where(PersonDao.Properties.Id.eq(a+"")).build().list();
        for (int i = 0; i < list.size(); i++) {
            Log.e("MainActivity", list.get(i).toString());
            personDao.deleteByKey(list.get(i).getId());
        }
    }

    private void select() {
        List<Person> list = personDao.queryBuilder().orderDesc(PersonDao.Properties.Id).build().list();
        for (int i=0;i<list.size();i++){
            Log.d("Test+++++++++++++",list.get(i).toString());
        }
    }

    //添加信息
    private void method1() {
        for (int i=0;i<10;i++){
            if(i%2==0){
                Person P = new Person();
                P.setAge(18+i);
                P.setAnme("小马哥ing");

                personDao.insert(P);
            }else {
                Person P = new Person();
                P.setAge(18-i);
                P.setAnme("小猪佩奇");

                personDao.insert(P);
            }
        }
    }
}

最后效果图


添加10条信息 查询


修改id2 查询

删除id1 删除完再查询  


猜你喜欢

转载自blog.csdn.net/jonly_w/article/details/80286751