当前位置:   article > 正文

Android应用开发--LitePal操作数据库_litepal 读取第一条数据

litepal 读取第一条数据

关键词:
Android手机应用开发、数据库操作、LitePal的使用

开发坏境:Windows 10 x64系统、Android Studio2.2

实现功能:在Android手机应用开发的过程中,通过LitePal对数据库的操作,实现手机端的数据持久化。

具体流程:导入工具包、添加配置文件、创建类的实例对象、获取数据库对象、CRUD。

本项目所使用的代码测试如下:LitePal操作数据库测试代码

1.创建项目,导入LitePal所需要的工具包

1(蓝色笔迹).首先我们双击左侧Gradle Scripts目录下的第二个(build.gradle(Module.app)),就会弹出右边这个名为app的文件。
2(红色笔迹).接着我们在红线部分添加上此内容以实现工具包的引入。
compile 'org.litepal.android:core:1.4.1'
3(黑色笔迹).最后我们单击右上角的Sync Now,这样编译器就会自动把这个工具包给下载并引入进你的项目中。
在这里插入图片描述

2.添加配置文件

接下来我们需要给他配置一下配置文件,确保LitePal知道自己需要负责的部分。
首先我们单击左侧窗口最上方的Android部分,他的旁边还有一个绿色的小人。就会弹出这个选择框,单击选择第一个位置的Project。
在这里插入图片描述
然后我们按照图示找到相应的目录main,即app/src/main,我们首先左键选中它,然后对着它右击,创建一个新的文件夹,名字叫assets
在这里插入图片描述
如下
在这里插入图片描述
然后对着新创建的文件夹右击,创建一个名为“litepal.xml”的文件,记得写全,要把.xml也写进去
在这里插入图片描述
然后加上以下内容

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
    <!-- <dbname value-"数据库的名称"></dbname> -->
    <dbname value="DataBaseName"></dbname>
    <!--
        <version value="数据库的版本号"></version>
        在数据库版本升级的时候可以使用到
        例如,当你的数据库表字段发生改变的时候,或是当你的数据库表发生增改的时候
        这时候可以将版本号加一,这样一来就LitePal就会自动的更新数据库中的数据,同时
        在你对原有数据库表字段进行更改的时候,还会自动帮你保留原来表中的数据
     -->
    <version value="1"></version>
    <!-- 这里就是我们需要告诉LitePal,它需要负责的部分了
        简而言之就是,在这里我们要告诉LitePal,我们创建的表的实例都是谁
        也就是在LitePal中注册我们创建的表
     -->
    <list>

    </list>
</litepal>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

写完上面的东西之后,你可能会发现有这个烦人的东西
在这里插入图片描述
这个的意思是说,你的XML文件中有一个空的实体,简单的说就是你两个version之间没有东西,我们可以把上述代码改成这样即可<version value="1" />

接下来我们还需要在Android程序中为LitePal注册一下,让我们的Android应用知道有这么个东西。
我们双击app/manifests/AndroidManifest.xml,在这里面的<application>下,添加这么一行代码,来实现我们的目的android:name="org.litepal.LitePalApplication"
在这里插入图片描述

3.创建表的实体类

我们可以在我们的主程序下,新建一个包,名字叫做Dao或者Pojo都可以,表示这个包里面放着的都是一些数据库中表的实例类,有时候我们也成JavaBean。
在这里插入图片描述
然后我们在新建的包创建一个类,类名即是数据库中表的名称,我们就叫它LitePalTestTable01吧。
在这里插入图片描述
接下来我们让它继承DataSupport这个类,这样一来我们就可以比较轻松的实现CRUD了。
在上一步单击创建新类之后,就可以看到这个窗口,在这个窗口里

名称含义
Name类的名称
Kind类的名称,类、接口、枚举、注释啥的
Superclass这个类所继承的类,就是extends之后的东西
Interface这个类实现的接口,就是interface之后的东西
Package这个类所属的包,自动生成的,可以看到就是这个类所在的目录

这里面的Superclass不用写全,只要写DataSupport就可以了,在你写的过程中会出现下来框,选中你需要的这个即可自动补全,而且还自动导包。
在这里插入图片描述
然后就是把我们设计好的数据库表字段以成员变量的形式写进去
在这里插入图片描述
接着就是getter、setter方法
我们可以在成员变量下面几行的部分,在光标闪烁的情况下,按下键盘的Alt+Inert键,让Android studio弹出这个窗口,然后我们选中Getter and setter
在这里插入图片描述
就会弹出这个窗口,这时,它会自动选中第一行,我们按住Shift键,单击最后一行,就会全选,之后我们单击OK,即可完成自动添加get和set方法。
在这里插入图片描述
好的,然后我们需要在LitePal的配置文件中注册这个我们创建的类,让LitePal知道我们这里创建了一个它需要负责的表
在这里插入图片描述
这里面的绿色部分,就是我们原来创建类的时候,下面Package中的内容加上我们的类名,这样的全限定名,就可以在这个项目中锁定唯一的一个类。
如果想要创建很多类的话,可以多写几行。即Ctrl C and Ctrl V

4.创建并获取数据库实体

终于,我们对LitePal的配置完成了,可以开始使用它来操作数据库了。
首先我们想要操作数据库,就得先创建并获得数据库。我们可以在MainActivity.java中使用这样的代码来实现
在这里插入图片描述
所谓的创建并获取,就是说,如果没有该数据库,就先创建,再获取;如果有这个数据库,就直接获取。

5.CRUD操作

增(创建)C
正常情况下我们通过如下方式创建并给一个对象赋值

LitePalTestTable01 litePalTestTable01 = new LitePalTestTable01();
litePalTestTable01.setId(0);
litePalTestTable01.setName("Test01");
litePalTestTable01.setPrice(12.25);
  • 1
  • 2
  • 3
  • 4

同样的,我们想要给数据库表添加一条数据的话也需要这样,先创建一个数据库表所对应的实体对象,然后将一些值赋值给它。
然后我们执行这样一条语句即可实现在数据库表中添加数据

litePalTestTable01.save();
  • 1

查 R
1)查询表中所有数据

List<LitePalTestTable01> litePalTestTable01sList = DataSupport.findAll(LitePalTestTable01.class);
  • 1

然后就可以通过遍历来访问所有表中的对象
2)查询表中的第一条(最后一条)数据

// 查询表中的第一条数据
LitePalTestTable01 firstLitePalTestTable011 = DataSupport.findFirst(LitePalTestTable01.class);
// 查询表中的最后一个数据
LitePalTestTable01 lastLitePalTestTable011 = DataSupport.findLast(LitePalTestTable01.class);
  • 1
  • 2
  • 3
  • 4

3)按照一定的查询规则查询
select(),同数据库查询语句中的select,会返回一个ClusterQuery的对象
在这里插入图片描述

// 即select name,id语句,选择表的字段
DataSupport.select("name","id");
  • 1
  • 2

where(),同数据库查询语句中的where,它也会返回一个ClusterQuery对象
在这里插入图片描述
除此之外还有order(),limit(),offset()等方法,都可以用数据库查询语句来理解,它们很多都会返回一个ClusterQuery对象,就是说它们是可以叠加的。
比如,
在这里插入图片描述
这里面最后一个find方法,可以理解为form 表名,这样就基本上可以完整的对应上数据库的查询语句

改 U
当我们用上述方法获得到我们想要改的数据所对应的对象的之后,就可以使用set方法对我们想要更改的数据进行重新的set,然后重新调用save方法就可以成功更改表中数据了。
就像是
在这里插入图片描述
删 D
同样的我们在查找到想要操作的数据之后,就可以使用delete()方法对该数据进行删除

lastLitePalTestTable011.delete();
  • 1

或者我们也可以玩个大的

// 删除id小于10的数据
DataSupport.deleteAll(LitePalTestTable01.class,"id<?","10");
  • 1
  • 2

很容易懂,以及按照id进行删除

// 删除id为1的数据
DataSupport.delete(LitePalTestTable01.class,1);
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/267226
推荐阅读
相关标签
  

闽ICP备14008679号