前言:之前使用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文件直接使用LitePal的getDatabase方法创建数据库,即是添加下面的代码即可,写在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对象,这里我就不使用了

Android开发——使用LitePal开源数据库的更多相关文章

  1. Android开发——使用LitePal开源数据库框架

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

  2. android开发之使用SQLite数据库存储

    http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...

  3. 在Android 开发中使用 SQLite 数据库笔记

    SQLite 介绍   SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...

  4. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  5. Android开发--数据存储之数据库操作

    简介: SQLite 的介绍: SQLite数据库属于文本型的数据库,它是以文本的形式来保存的.Android提供了对 SQLite 数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据 ...

  6. android项目中使用开源数据库litepal

    下载地址 https://github.com/LitePalFramework/LitePal 参考文档 http://blog.csdn.net/guolin_blog/article/detai ...

  7. Android开发UI之开源项目第一篇——个性化控件(View)篇

    原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...

  8. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  9. android开发之使用SQLite数据库(db文件)

    在开发中,有时须要使用db文件数据库.所以就须要将其导入项目,再将其使用程序写入到应用的db文件下使用. 代码非常easy.能够拿来直接使用. 要使用须要两个步骤: 1.创建raw文件.导入db文件. ...

随机推荐

  1. Python的__main__.py用法

    [背景] 在看flower的时候看到__main__.py文件,不知道具体做什么用? 故先进行测试看看. [测试代码] 测试代码目录结构如下: . `-- test |-- __init__.py | ...

  2. 熊掌号:"搜索+信息流"双引擎与"百家号+熊掌号"双品牌内容平台

    一. 熊掌号是什么?熊掌号简单来说,就是"搜索 + 信息流"双引擎与"百家号 + 熊掌号"双品牌内容平台,上线了,对站长还是企业,都是一件好事.只要写出优质的原 ...

  3. markdown使用小结

    初学时,对不太熟悉的markdown语法,有个简单记录 公式 公式一般用Latex书写,在线Latex编辑器可以使用,有以下几种方法供选择 有然后保存为图片gif格式,使用img标签进行引用. 使用G ...

  4. Hi3518EV200平台ADC多通道采样

    Hi3518EV200平台ADC多通道采样流程 Hi3518EV200 ADC 本文针对Hi3518EV200平台处理器,通过ADC单次采样方式,实现对多通道(1~4通道)ADC进行采样控制.本文仅仅 ...

  5. eclipse自定义代码模板

    eclipse自定义代码模板 Eclipse 提供了非常多的代码模板,我们可以通过 Windows->Preferences->Java->Editor->Templates ...

  6. Vue 浅析与实践

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:曾柏羲 导语 入职接到的第一个需求是实现一个关于K歌实体售卖的ERP系统,管理系统过去做过不少,这次打算换个姿势,基于时下正热但早已不新 ...

  7. 运行java web项目时报错:Several ports (8005, 8080, 8009) required

    运行java web项目时报错:Several ports (8005, 8080, 8009) required 如下图 之所以报上面的错误是因为安装Tomcat的时候,已经把端口8005,8080 ...

  8. JAVA提高十八:Vector&Stack深入分析

    前面我们已经接触过几种数据结构了,有数组.链表.Hash表.红黑树(二叉查询树),今天再来看另外一种数据结构:栈. 什么是栈呢,我们先看一个例子:栈就相当于一个很窄的木桶,我们往木桶里放东西,往外拿东 ...

  9. JavaScript各种继承方式和优缺点

    好久没写博客啦,嘻嘻,这个月是2017年的最后一个月啦,大家应该都开始忙着写年终总结了吧,嘻嘻,小颖今天给大家分享下Javascript中的几种继承方式以及他们的优缺点. 1.借助构造函数实现继承 原 ...

  10. 伸缩的菜单,用toggle()重写

    <!DOCTYPE ><html><head><meta charset="UTF-8"/><title>伸缩的菜单,用 ...