Android学习之GreenDao最全面的使用详解(搭建+入门使用+基本语法)_第1页
Android学习之GreenDao最全面的使用详解(搭建+入门使用+基本语法)_第2页
Android学习之GreenDao最全面的使用详解(搭建+入门使用+基本语法)_第3页
Android学习之GreenDao最全面的使用详解(搭建+入门使用+基本语法)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论