GreenDao数据库
来源:互联网 发布:弓箭手升级数据 编辑:程序博客网 时间:2024/06/02 02:23
看了好多篇然后自己整理出来的
第一步:配置gradle相关
①:Project的build.gradle下:
buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.3.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 }}
②:实体类存在的Module的build.gradle下也就是app下面的build.gradle
apply plugin: 'org.greenrobot.greendao'
在android里面写
*针对greenDao的一些配置*/ greendao { schemaVersion 1 //数据库版本号 daoPackage 'com.usher.greendao_demo.greendao.gen' //自动生成的工具类的包名 targetGenDir 'src/main/java' //路径 }在dependencies里面写
/*greenDao框架*/compile 'org.greenrobot:greendao:3.2.0'第二步写实体类
//辨明该类是持久化的类@Entitypublic class User { //选择一个long或long类型的属性 @Id private long id; private String name; private String age; @Generated(hash = 531058479)public User(long id, String name, String age) { this.id = id; this.name = name; this.age = age;} @Generated(hash = 586692638) public User() { } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age='" + age + '\'' + '}'; }}//这是查看http://www.jianshu.com/p/00d93c2d511f这个里面得到的感觉这个用处挺大greenDao多使用注解,如果你要将某一实体存储到数据库中,需要先对实体进行编写。@Entity表明该类是持久化的类【持久化含义,存入数据库文件中,作本地化处理】@Id选择一个long或Long类型的属性作为该实体所对应数据库中数据表的主键【类型要是long】@Generated写在构造方法前将以上注解写好后,点击AS上的Make Project即可然后就会发现自己的项目中多了三个包第三步:接下来就是操作数据库了
在MainActivity中
//初始化数据库DaoMaster.DevOpenHelper devopenHelper=new DaoMaster.DevOpenHelper(this,"notes-db",null);DaoMaster daoMaster=new DaoMaster(devopenHelper.getWritableDatabase());DaoSession daosession=daoMaster.newSession();userDao = daosession.getUserDao();下面这些一些Button按钮下的操作//添加数据public void tianjia(View v){ //实例化一个User对象 User user=new User(0,"bb","123"); //然后调用userDao的insert方法就可以了 userDao.insert(user);}//删除数据public void shanchu(View v){ //先查询出需要删除的条目 User user=userDao.queryBuilder().where(UserDao.Properties.Name.eq("bb")).build().unique(); if(user!=null){ //然后调用userDao的deleteByKey将该条目的主键传入即可删除 userDao.deleteByKey(user.getId()); }}//查询数据public void chaxun(View v){ // 通过userDao的queryBuilder()方法,生成一个查找构造器 List<User> userList=userDao.queryBuilder() //给构造器添加where条件判断、按照某某字段排序以及查询的条数等基本的数据库操作 .where(UserDao.Properties.Id.notEq(1)) .orderAsc(UserDao.Properties.Id) .limit(5)//分页查询 .build().list();//list()方法表示查询的结果为一个集合 System.out.println("+++++++++++++++++"+userList);}//修改数据public void xiugai(View v){ //修改数据的第一步是把需要修改的条目给查询出来 User user=userDao.queryBuilder().where(UserDao.Properties.Name.eq("bb")).build().unique(); if(user!=null){ user.setName("mm"); //调用userDao的update方法即可 userDao.update(user); Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "数据库为空", Toast.LENGTH_SHORT).show(); }}还从网上看到的一个自定义sql语句的没试验过ChatHistoryDao dao = GreenDaoManager.getInstance().getSession().getChatHistoryDao();
Cursor cursor = dao.getDatabase().rawQuery("select t.sales_wx_nick_name,t.wx_nick_name,count(*),t.talker_id,t.sales_wx_account from chat_history t group by t.talker_id,t.sales_wx_account order by t.created_at desc", null);while (cursor.moveToNext()){
String salesWxNickName = cursor.getString(0);String clientWxNickName = cursor.getString(1);int chatCount = cursor.getInt(2);int talkerId = cursor.getInt(3);String salesWxAccount = cursor.getString(4);}
有的时候需要用到group by或者left join等复杂的语句,可以调用android原生的sqlite去进行查询
阅读全文
1 0
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库
- GreenDao数据库结构升级
- GreenDAO数据库版本升级
- GreenDAO数据库版本升级
- android 数据库之greendao
- GreenDao数据库升级解决方案
- greendao数据库升级
- GreenDao 2.2 数据库加密
- GreenDao数据库简单使用
- GreenDao数据库的使用
- Android 数据库 GreenDao使用
- Vue开源项目库汇总
- 百度自动驾驶测试车有几款
- 区间求和 I -LintCode
- ubuntu16.04_caffe_GPU
- vue脚手架引用组件4步骤
- GreenDao数据库
- 113. Path Sum II
- 青岛港:服务器虚拟化和动环的一体化运维管理
- activeMQ指南针_Queue完整分析
- ubuntu qt ffmpeg安装配置
- 带你玩转Visual Studio——带你高效开发
- 树莓派内核(Kernel)的交叉编译
- ButterKnife的安装与使用以及ButterKnife右键不显示的大坑
- ios 毛玻璃效果