1.在项目中添加使用的db包,编写一个实体类
如 Person类
@Entity
public class Person {
@Id(autoincrement = true)
private Long personId;
private String name;
private int age;
}
使用ctrl+F9,插件会自动生成以下几个类
DaoMaster用于添加表单、删除、更新表单等
DaoSession注册Dao
PersonDao操作Person数据库的增删改查
另Person类将会自动更新代码如下
@Entity
public class Person {
@Id(autoincrement = true)
private Long personId;
private String name;
private int age;
@Generated(hash = 1357244396)
public Person(Long personId, String name, int age) {
this.personId = personId;
this.name = name;
this.age = age;
}
@Generated(hash = 1024547259)
public Person() {
}
public Long getPersonId() {
return this.personId;
}
public void setPersonId(Long personId) {
this.personId = personId;
}
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;
}
}
//在项目中构建单例
public class DaoManager {
private static DaoManager mInstance;
private SQLiteDatabase mDB;
private DaoSession mDaoSession;
public static DaoManager getInstance() {
if (mInstance == null) {
synchronized (DaoManager.class) {
if (mInstance == null) {
mInstance = new DaoManager();
}
}
}
return mInstance;
}
public void init(Context context, String dbName) {
if (dbName == null || dbName.isEmpty()) {
dbName = "default.db";
}
DaoMaster.DevOpenHelper dBHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
mDB = dBHelper.getWritableDatabase();
DaoMaster mDaoMaster = new DaoMaster(mDB);
mDaoSession = mDaoMaster.newSession();
}
public SQLiteDatabase getDB() {
return mDB;
}
public DaoSession getDaoSession() {
return mDaoSession;
}
}
在自己的Application中引入
DaoManager.getInstance().init(this,"xxx.db");
数据的增删改查
DaoManager.getInstance().getDaoSession().getPersonDao()获取PersonDao,进行数据的增删改查。
ToOne
一个对象对一个对象的插入
@Entity
public class One {
@Id(autoincrement = true)
private Long id;
private String name;
private Long twoId;//使用该id将其关联
@ToOne(joinProperty = "twoId")
private Two two;
}
@Entity
public class Two {
@Id
private Long id;
private String name;
}
One one = new One();
one.setName(etName.getText().toString() + "One");
one.setTwoId(Long.parseLong(etAge.getText().toString()));
DaoManager.getInstance().getDaoSession().getOneDao().insert(one);
Two two = new Two();
two.setId(one.getTwoId());
two.setName(etName.getText().toString() + "Two");
DaoManager.getInstance().getDaoSession().getTwoDao().insert(two);