1.在工程的build.gradle中
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
//添加
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
app的build.gradle中
apply plugin: 'org.greenrobot.greendao'
compile 'org.greenrobot:greendao:3.2.0'
2.bean
创建一个表名为USER,包含id,USERNAME,NICKNAME三个列名的表
@Entity
public class User {
@Id
private Long id;
@Unique //表明USERNAME字段的值是唯一的,即不允许有两个USERNAME一样
@Property(nameInDb = "USERNAME")
private String username;
@Property(nameInDb = "NICKNAME")
private String nickname;
}
3.Clean或Rebuild一下就会自动生成红色框中的代码和类
4.使用
创建dbmanager类初始化
//lenve.db 数据库名
******
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext(), "lenve.db", null);
DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());
DaoSession daoSession = daoMaster.newSession();
*********
//*中间的代码只用执行一次
//所有的Dao都从daoSession中获取,每新建一张表都有对应的Dao类
userDao = daoSession.getUserDao();
User user = new User(null, "zhangsan" + new Random().nextInt(9999),"张三");
userDao.insert(user);
//也可以这样,推荐使用下面的
userDao.insertOrReplace(user);
**查
userDao.loadAll()//返回USER表中所有数据
//如建表时Username是唯一的就可以精确查找 unique(),如有多个默认返回第一条--
User user=
userDao.queryBuilder().where(UserDao.Properties.Username.eq("zhangsan5520")).unique();
//查找符合查询条件的所有
ArrayList<User> list = (ArrayList<User>) userDao.queryBuilder().where(UserDao.Properties.Username.eq("zhangsan5520")).list();
//模糊查找
如 表中有 张山 ,张二山,张三山,张四山,张五山
Username =张 时 list集合中有 张山 ,张二山,张三山,张四山,张五山
Username =山 时 list集合中有 张山 ,张二山,张三山,张四山,张五山
Username =张山 时 list集合中有 张山 ,张二山,张三山,张四山,张五山
Username = 三 时 list集合中有 张三山
List<User> list = App.getInstance().getDaoSession()
.getUserDao()
.queryBuilder()
.where(UserListInfoDao.Properties.Houseno.like("%" + Username+ "%")).list();
**改 —–
//不管添加还是修改都使用
userDao.insertOrReplace(user);
生成的表