创建数据库 DaoManager
public class DaoManager {
private static DaoManager daoManager;
private DaoSession daoSession;
private DaoManager(Context context) {
daoSession = DaoMaster.newDevSession(context, "person.db");
}
public static DaoManager getInstance(Context context) {
if (daoManager == null) {
synchronized (DaoManager.class) {
if (daoManager == null) {
daoManager = new DaoManager(context);
}
}
}
return daoManager;
}
public DaoSession getDaoSession() {
return daoSession;
}
}
增删改查的方法:
public class MainActivity extends AppCompatActivity {
private DaoSession daoSession;
private int index;
private PersonDao personDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
daoSession = DaoManager.getInstance(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);
}
}
}
Bean类
@Entity(nameInDb = "person_table")
public class Person {
@Id(autoincrement = true)
public Long id;
@Property(nameInDb = "name")
public String mingzi;
public int age;
@Transient
public String identity;
@Generated(hash = 244725397)
public Person(Long id, String mingzi, int age) {
this.id = id;
this.mingzi = mingzi;
this.age = age;
}
@Generated(hash = 1024547259)
public Person() {
}