在project里面导入
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
然后在module的gradle文件中添加greenDAO的插件,并引入相关类库,
apply plugin: 'org.greenrobot.greendao'
compile 'org.greenrobot:greendao:3.2.2'
在最下方括号的外面添加
com.example.zuoye0126.gen为你的全部包名.gen
greendao { schemaVersion 2 daoPackage 'com.example.zuoye0126.gen' targetGenDir 'src/main/java' }
//bean类 也就是插入数据库的字段
@Entity public class User { // @Property(nameInDb = "names") 为起别名 //@NotNull 不为空 //@Transient 加上这个 这个属性不会存放到数据库 @Id(autoincrement = true) //id为主键 必须为Long private Long _id; private String name; @Generated(hash = 1144922831) public User(Long _id, String name) { this._id = _id; this.name = name; } @Generated(hash = 586692638) public User() { } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; }
Application 类
public class Myapp extends Application { public static Context context; @Override public void onCreate() { super.onCreate(); context=getApplicationContext(); //调用工具包里面的方法 GreenDaoUtils.getmInstance().init(); } }
//GreenDaoUtils 工具包
public class GreenDaoUtils { private volatile static GreenDaoUtils greenDaoUtils; private DaoSession daoSession; private SQLiteDatabase database; private GreenDaoUtils(){ } public static GreenDaoUtils getmInstance(){ if (greenDaoUtils==null){ synchronized (GreenDaoUtils.class){ if (greenDaoUtils==null){ greenDaoUtils=new GreenDaoUtils(); } } } return greenDaoUtils; } //初始化数据 这个方法在Application里面调用 public void init(){ setDataBase(); } private void setDataBase() { //调用Application里面的上下文 参数二为数据库名字 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(Myapp.context, "user.db", null); database = helper.getWritableDatabase(); DaoMaster daoMaster= new DaoMaster(database); daoSession = daoMaster.newSession(); } public DaoSession getDaoSession(){ return daoSession; } public SQLiteDatabase getSQLiteDatabase(){ return database; } }
//删除所有的表内的行数据MainActivity
private void greenDao() { User user=new User((long) 1,"你猜"); User user1=new User((long) 5,"小明"); User user2=new User((long) 6,"你红"); User user3=new User((long) 7,"你亮"); //调用工具包里面的方法 DaoSession daoSession = GreenDaoUtils.getmInstance().getDaoSession(); //增删改查都用 userDao来操作 UserDao userDao = daoSession.getUserDao(); userDao.insert(user); userDao.insert(user1); userDao.insert(user2); userDao.insert(user3); //查询数据库 Query<User> query = userDao.queryBuilder().build(); List<User> list = query.list(); for (User user4 : list) { Log.d("数据", user4.getName()+" "+user4.get_id()); } }/* //第二种查询方法 List<User> users = userDao.loadAll(); for (User user4 : users) { Log.d("哈哈", user4.getName()+" "+user4.get_id()); }*///根据id查询 Query<User> query = userDao.queryBuilder().where(UserDao.Properties._id.eq(5)).build(); List<User> list = query.list(); for (User user : list) { Log.d("哈哈", user.getName()); }//修改 User user=new User((long) 7,"你好啊我来了别跑啊"); userDao.update(user);
userDao.deleteAll();
//根据id删除 userDao.deleteByKey((long) 7);
//分页加载的方法 User为bean对象 private List<User> selectpager(int offset){ // offset和limit,offset从哪个行开始加载多少数据,limit每次限制加载多少条数据 Query<User> query = userDao.queryBuilder().limit(10).offset(offset*10).build(); List<User> list = query.list(); for (User user : list) { Log.d("十条数据", "selectpager: "+user.get_id()); } return list; }
参考 http://blog.csdn.net/huangxiaoguo1/article/details/78234097
http://blog.csdn.net/qq_26440221/article/details/76855318
https://note.youdao.com/share/?id=a0c7d1c4618c1030a8cda316b667e40f&type=note#/