一
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="query" android:text="query" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="add" android:text="add" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="update" android:text="update" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="delete" android:text="delete" /> </LinearLayout>
二
package com.example.greendaodemotwo; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Generated; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Transient; /** * Created by 。。。。 on 2018/11/1. */ @Entity(nameInDb = "person_table") public class Person { @Id(autoincrement = true) public Long id; @Property(nameInDb = "username") public String name; public int age; @Transient public String identity; @Generated(hash = 1145075130) public Person(Long id, String name, int age) { this.id = id; this.name = name; this.age = age; } @Generated(hash = 1024547259) public Person() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", identity='" + identity + '\'' + '}'; } }
三
package com.example.greendaodemotwo; import android.content.Context; /** * Created by 。。。。 on 2018/11/1. */ public class DaoManager { private static DaoManager insance; private DaoSession daoSession; private DaoManager(Context context) { daoSession=DaoMaster.newDevSession(context,"preson.db"); } public static DaoManager getInsance(Context context){ if(insance==null){ synchronized (DaoManager.class){ if(null==insance){ insance=new DaoManager(context); } } } return insance; } public DaoSession getDaoSession(){ return daoSession; } }
四
package com.example.greendaodemotwo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private DaoSession daoSession; private PersonDao personDao; private int index; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); daoSession = DaoManager.getInsance(this).getDaoSession(); personDao = daoSession.getPersonDao(); } public void query(View view) { List<Person> list = personDao.queryBuilder() .where(PersonDao.Properties.Age.lt(500)) .orderDesc(PersonDao.Properties.Age) .build() .list(); for (Person person : list) { Log.e("tag", "query " + person.toString()); } } public void add(View view) { index++; Person person = new Person(null, "name" + index, index * 10); personDao.insert(person); } public void update(View view) { List<Person> list =personDao.queryBuilder() .where(PersonDao.Properties.Age.lt(500)) .orderDesc(PersonDao.Properties.Age) .build() .list(); for (Person person : list) { if (person.age == 20) { person.age = 100; personDao.update(person); } } } public void delete(View view) { Person person = personDao.queryBuilder() .where(PersonDao.Properties.Id.eq(2)) .build() .unique(); if (person != null) { personDao.delete(person); } } }