您的位置:首页 > 移动开发 > Android开发

Android数据库之greendao的基本使用

2017-03-23 21:49 489 查看
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);


生成的表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: