



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android学习之GreenDao最全⾯的使⽤详解(搭建+⼊门使⽤+基本语法)简单介绍greenDAO是⼀款开源的⾯向Android的轻便、快捷的ORM框架,将Java对象映射到SQLite数据库中,我们操作数据库的时候,不在需要编写复杂的SQL语句,在性能⽅⾯,greenDAO针对Android进⾏了⾼度优化,最⼩的内存开销、依赖体积⼩。greenDAO数据库是⾮常适合存储⼤量数据,从⽽加速事项。使⽤greenDAO,⼤多数实体可以插⼊,更新和在速率加载每秒⼏千实体。⼀、GreenDao搭建在这⾥建议⼤家使⽤最新版的greenDAO,不然会出现各种各样的问题导⼊依赖Project:build.gradlebuildscriptbuildscript{repositories{google()jcenter()mavenCentral()}dependencies{classpath'com.android.tools.build:gradle:3.4.2'classpath'org.greenrobot:greendao-gradle-plugin:3.3.0' //GreenDao}}Module:appbuild.gradle最上⾯引⼊对应的插件applypluginapplyplugin'org.greenrobot.greendao'//添加应⽤依赖插件导⼊依赖,这⾥使⽤的是3.3.0,建议使⽤3.3.0或是3.2.2版本的implementationimplementation'org.greenrobot:greendao:3.3.0'//添加库配置greenDao的参数greendaogreendao{schemaVersiontargetGenDir'src/main/java'daoPackage"${android.defaultConfig.applicationId}.greenDao"}然后重新sync⼀下项⽬即可⼆、简单⼊门1.实体类:packagepackagecom.st.myriven.greenDao;importorg.greenrobot.greendao.annotation.Entity;importorg.greenrobot.greendao.annotation.Id;importorg.greenrobot.greendao.annotation.Generated;@EntitypublicclassUser{@Idprivatelongid;privateStringname;privateintage;//省略了getter,setter⽅法}在进⾏build),这时候你会发现会在之前指定的⽬录下多出⼏个类,我们接下来就是通过这⼏个类进⾏操作数据库2.创建⼀个类去继承Application,需要在AndroidManifest.xml⽂件中置顶application的名字publicclasspublicclassAppContextextendsApplication{privateDaoSessiondaoSession;@OverridepublicvoidonCreate(){super.onCreate();initDreenDao();}/***greendao数据库初始化*/privatevoidinitDreenDao(){DaoMaster.DevOpenHelperdevOpenHelper=newDaoMaster.DevOpenHelper(this,"demo.db");SQLiteDatabasedb=devOpenHelper.getWritableDatabase();DaoMasterdaoMaster=newDaoMaster(db);daoSession=daoMaster.newSession();}/***获取DaoSession*/publicDaoSessiongetDaoSession(){returndaoSession;}}publicpublicclassTestActivityextendsActivity{AppContextmyApp;DaoSessiondaoSession;UserDaouserDao;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.test);myApp=(AppContext)getApplication();daoSession=myApp.getDaoSession();userDao=daoSession.getUserDao();Useruser=newUser();user.setId(1);user.setName("张三user.setAge(22);//userDao.insert(user);//如果id重复,会报错,userDao.insertOrReplace(user);Listlist=selectAll();Log.i("info",list.get(0).toString());}publicListselectAll(){returnuserDao.loadAll();//查询所有记录}}打印到⽇志中三、常见注解@Id:对应数据表中的Id字段@Entity:使⽤@Index作为⼀个属性来创建⼀个索引,默认是使⽤字段名@Index:使⽤@Index作为⼀个属性来创建⼀个索引,默认是使⽤字段名@NotNull:设置数据库表当前列不能为空@Unique:表名该属性在数据库中只能有唯⼀值@Property:设置⼀个⾮默认关系映射所对应的列名,默认是使⽤字段名@OrderBy:更加某⼀字段排序当然还有很多注解,在这⾥不⼀⼀介绍,这些相对⽐较常见四、基本语法在这⾥所有的语句均使⽤上⾯的userDao进⾏操作(⼀)插⼊插⼊语句可直接引⽤上⾯的UserUseruser=newUser();user.setUserId(1);user.setName("⼩明");user.setAge(16);userDao.insert(user);userDao.insertOrReplace(user);insertOrReplace和insert区别insert时,当id相同时,会报错当id相同时,不会报错,只是会替换⼀下userDaouserDao.delete(user);//根据对象删除userDao.deleteByKey(user.getId());//根据id删除userDao.deleteAll();//删除全部userDaouserDao.update(user);////查询所有记录userDao.loadAll();//根据ID查询userDao.loadByRowId(user.getId());//查询成年的⽤户userDao.queryRaw("whereAGE>?","18");//模糊查询para是你的参数userDao.queryBuilder().whereOr(userDao.Properties.Name.like("%"+para+"%"),BedInfoDao.Properties.Num.like("%"+para+"%")).list()//根据条件查询userDao.queryBuilder().where(userDao.Properties.Id.eq(user.getId())).limit(1).list();当然还有很多查询的⽅式,不在⼀⼀例举,以下是会⽤到的语法介绍:whereOr:where语句⾥⾯写的条件都是⽤“且”连接,whereOr⾥的语句使⽤“或”连接distinct:直接过滤掉重负字段limit:分页n个⼀页,⼀般和offset结合使⽤offset:忽略查询出的前n条结果orderAsc:以字段升序排序orderDesc:以字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗教育中模拟游戏的成效评估研究
- 抖音商户差评回复内容审核制度
- 八大城市物流行业物流配送体系建设研究报告
- 公交优先政策2025年实施对城市交通拥堵治理的成本效益分析报告
- 公众参与对2025年环境影响评价结论影响的研究报告
- 2024-2025学年河南省驻马店市新蔡县九上化学期末考试模拟试题含解析
- 2024年湖南省长沙市明德旗舰化学九年级第一学期期末达标检测模拟试题含解析
- 上海邦德职业技术学院《数字媒体设计》2023-2024学年第一学期期末试卷
- 郑州工业安全职业学院《桥梁工程D》2023-2024学年第一学期期末试卷
- 宿迁学院《建筑设备与环境》2023-2024学年第一学期期末试卷
- 水利工程隐患排查清单
- 企业战略管理试题及答案 12套试卷
- 法瑞西单抗注射液-药品临床应用解读
- 2024年五年级英语下册 Module 3 Unit 2 Sam ate four hamburgers说课稿 外研版(三起)
- 保险行业大数据分析与精准客户画像方案
- 酒店前台收银员聘用合同
- 教育学原理题库(含答案)
- 《古树名木复壮定额》SHA2-31-(02)-2023
- 《个人素质与职业》课件
- 最详细的年财务报表模板
- 水电设备安装合同
评论
0/150
提交评论