zoukankan      html  css  js  c++  java
  • Android开发——使用LitePal开源ORM框架

    前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在

    LitePal GitHub首页:https://github.com/LitePalFramework/LitePal

    配置步骤

    1.添加依赖

    切换project模式,展开APP的文件夹,找到build.gradle文件,去里面添加依赖,这里我用的是最新版本,可以在LitePal的Github官网上找到最新的版本

    2.配置LitePal.xml文件及相关设置

    在main文件夹中新建一个asstes文件夹,之后,创建LitePal.xml,复制LitePal上的GItHub给出的代码,这里我就直接写了,其中,dbname代表数据库的名称,version代表版本号,list标签之下有表(专业术语为映射模型类),这里之后会提及

     此外,我们还需要在AndroidMainfest文件中添加一行代码android:name="org.litepal.LitePalApplication"

     3.创建一个Java Bean类

    这里创建了一个书的bean类,有着三个成员变量,之后,使用alt+insert,选择getter and setter,添加get与set方法

     4.在LItePal.xml文件中list标签下配置表(映射模型类)

    记得包名要写完整

     

     使用步骤:

    1.创建和升级数据库

    在相关activity的java文件直接使用LitePalgetDatabase方法创建数据库,即是添加下面的代码即可,写在onClick事件中即可,这里就不放截图

      LitePal.getDatabase();

    升级数据库,直接在Bean的java文件中添加新的成员变量及其的get与set方法即可,升级数据库的代码还是使用上面的那一行代码

    举个例子,例如上述,我们想要添加一个出版社的列,我们只需要在Book里面创建一个成员变量,及get与set方法,之后,去LitePal.xml文件中,将version的版本加1,也就是改为2即可,其他的都不需要更改

    例如,我们想要再加一张表,也是类似的操作,创建一个Bean类,之后,在LitePal.xml文件中使用mapping标签,同时,将版本号加一,也就是改为2即可,其他的也是不需要改变

    2.添加数据

    修改模型类(也就是Book),使其继承DataSupport

    之后,我们只需要新建一个对象,调用其set方法,为其里面的成员变量赋值,之后,调用save方法,就是成功地往数据库中添加了数据

    3.修改(更新)数据

    更新的操作其实很简单,使用udateAll方法即可,例如,我们要将上面书名为The Last的作者改为John,价格改成16

    updateAll里面写了约束条件,也就是书名为The Last的那一条数据,修改,如果updateAll里面无参数,就是将表里面的数据的作者与价格更改为John和16

    4.删除数据

    调用DataSupport的deleteAll方法,与上面的updateAll类似,参数里填约束条件,如果不写,就是删除整张表

         DataSupport.deleteAll(Book.class,"name is ?","The Last");//删除名字为The Last的数据
         DataSupport.deleteAll(Book.class,"name is ? and price is ?","The Last","15");//删除名字为The Last,价格为15的的数据
            DataSupport.deleteAll(Book.class,"price < ?","16");//删除价格低于16的数据

    5.查找数据

    查找方法调用的DataSupport的findAll方法即可,下面给出示例代码

      select指定查询列,where查找出符合约束条件的数据,order将查询结果排序,limit限制查询数据数目

    
    
         List<Book> books = DataSupport.findAll(Book.class);//查找Book这张表的全部数据,返回的是一个List
            List<Book> books1 = DataSupport.select("name","price").find(Book.class);//指定查询Book这张表中的name与price两列的数据,返回的也是一个List
            List<Book> books2 = DataSupport.where("price > ?","16").find(Book.class);//指定在Book这张表查找符合价格大于16(约束条件)的数据,返回的是一个List
            List<Book> books4 = DataSupport.order("price desc").find(Book.class);//将查询结果按照价格从高到低排序(desc 降序),不写或者asc则是升序
            List<Book> books5 = DataSupport.limit(3).find(Book.class);//查询Book表中的前三条数据
    
    
    
     值得一提的是,可以使用findBySQL方法进行原生的查询,也就是之前使用内置数据库的方法,返回的是一个Cursor对象,这里我就不使用了

     

  • 相关阅读:
    xamarin ios html5 video.js 无法播放
    限制WPF textbox 字符最大值
    .net 客户端 WCF Binding 多次迭代
    10款无需编程的App DIY开发工具
    国外一些好用的UX/UI设计工具和资源分享
    成功网页设计师的七大必备技能
    提升编程能力的11个技巧
    2015程序员推荐书单
    前端工作流程自动化——Grunt/Gulp 自动化
    HTML5初学者福利!11个在线学习网站推荐
  • 原文地址:https://www.cnblogs.com/stars-one/p/8127146.html
Copyright © 2011-2022 走看看