下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江省舟山市单招职业倾向性考试题库含答案详解
- 2026年扬州工业职业技术学院单招职业适应性考试题库含答案详解
- 2026年长沙轨道交通职业学院单招职业适应性测试题库及答案详解一套
- 2026年郑州体育职业学院单招综合素质考试题库及完整答案详解1套
- 2026年宁夏葡萄酒与防沙治沙职业技术学院单招职业倾向性测试题库参考答案详解
- 2026年郑州城市职业学院单招职业技能考试题库及参考答案详解一套
- 秦淮国考面试题库及答案
- 沧县医院面试题及答案
- 2025年河池市国有资本投资运营(集团)有限公司公开招聘备考题库带答案详解
- 广西壮族自治区工业和信息化厅直属部分科研事业单位2025年度公开招聘工作人员备考题库及1套参考答案详解
- 2025年西昌市邛海泸山风景名胜区管理局招聘5名执法协勤人员备考题库有答案详解
- 2025年杭州市公安局上城区分局警务辅助人员招聘60人备考题库及完整答案详解一套
- 2025中央社会工作部所属事业单位招聘11人笔试试题附答案解析
- 2025国开期末考试《中国现代文学专题》机考试题含答案
- 居民自管小组建设方案
- 2025年煤矿安全生产治本攻坚三年行动工作总结
- 2026年南京交通职业技术学院单招职业适应性考试题库带答案详解
- 2025江苏南京市市场监督管理局所属事业单位招聘高层次人才5人(公共基础知识)测试题带答案解析
- 2025年二级建造师继续教育考试题库及答案
- 2026年泰安银行股份有限公司校园招聘(70人)笔试备考题库带答案解析
- 足球D级教练员导师课件
评论
0/150
提交评论