1、关于annotation相关基本知识可以参看android/java 注解

2、该框架源码已上传到GITHUB

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 users = userDao.loadAll();for(User user : users){    LogUtils.v(user.toString());}

更多相关文章

  1. android 在listview上的 gallery 禁止上下滑动
  2. RatingBar的使用方法
  3. Android事件分发机制解析
  4. Android: Gallery的adapter中getView方法被执行多次
  5. Android(安卓)ViewDragHelper使用介绍
  6. android IPlog的抓取方法
  7. Android(安卓)Dialog大全
  8. Android网络编程
  9. android 屏保锁中屏掉按键和HOME键的方法

随机推荐

  1. 《Python核心编程》18.多线程编程(三)
  2. Python的范围函数如何工作?
  3. python爬虫学习之post数据的传送
  4. 在windows上安装scikit-learn开发环境
  5. Django模型选择:使用元组的第一个元素
  6. Python比较运算符
  7. 如何让django芹菜写入测试数据库进行功能
  8. 第二次运行时出错。
  9. 日志与python日志组件logging
  10. 在Python中使用代理运行Selenium Webdriv