首先先到 主工程 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 删除完再查询