3、框架使用
3.1 在app build.gradle脚本中添加如下配置
apt {
arguments {// 这里的arguments必须以小写字母开头
appDaoMaster "com.roobo.domgy.db.DaoMaster"
appDaoSession "com.roobo.domgy.db.DaoSession"
appSQLiteOpenHelper "com.roobo.domgy.db.DomgySqlHelper"
appDatabaseName "rooboDb"
appDatabaseVersion 1
}
}
task processorTask(type: org.gradle.api.tasks.Copy) {
from "../greendaoannotationprocessor/build/libs/greendaoannotationprocessor.jar"
into "libs/"
}
processorTask.dependsOn(':greendaoannotationprocessor:build')
preBuild.dependsOn(processorTask)
3.2 新建一个SQLiteOpenHelper,继承于DomgySqlHelper
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.roobo.domgy.db.DaoMaster;
import com.roobo.domgy.db.DomgySqlHelper;
/**
* Created by LuoZheng on 2016/7/11.
*/
public class AppSqlHelper extends DomgySqlHelper {
public AppSqlHelper(Context context) {
super(context);
}
@Override
public void onCreate(SQLiteDatabase db) {
DaoMaster.createAllTables(db,false);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
DaoMaster.dropAllTables(db,false);
onCreate(db);
}
}
3.3 创建bean
import com.roobo.greendaoannotationprocessor.Dao;
import com.roobo.greendaoannotationprocessor.DaoProperty;
/**
* Created by LuoZheng on 2016/7/8.
*/
@Dao("TB_USER")
public class User {
@DaoProperty(ordinal = 0,isPrimaryKey = true)
private Long id;// Long类型
@DaoProperty(ordinal = 1)
private String nickName;
@DaoProperty(ordinal = 2)
private int age;
private String sex;
@DaoProperty(ordinal = 3)
private boolean isMan;
public User(Long id) {
this.id = id;
}
public User(Long id, String nickName, Integer age, Boolean isMan) {
this.id = id;
this.nickName = nickName;
this.age = age;
this.isMan = isMan;
}
public User(String nickName,int age,boolean isMan) {
this.nickName = nickName;
this.age = age;
this.isMan = isMan;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public boolean getIsMan() {// 注意这里的GET方法
return isMan;
}
public void setIsMan(boolean man) {// 注意这里的SET方法
isMan = man;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", nickName='" + nickName + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", isMan=" + isMan +
'}';
}
}
3.4 使用
AppSqlHelper sqlHelper = new AppSqlHelper(this);
SQLiteDatabase db = sqlHelper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();
userDao.insert(new User("张山风",1200,true));
userDao.insert(new User("董小宝",1100,true));
userDao.insert(new User("林心如",40,false));
List<User> users = userDao.loadAll();
for(User user : users){
LogUtils.v(user.toString());
}