赞
踩
关键词:
Android手机应用开发、数据库操作、LitePal的使用
开发坏境:Windows 10 x64系统、Android Studio2.2
实现功能:在Android手机应用开发的过程中,通过LitePal对数据库的操作,实现手机端的数据持久化。
具体流程:导入工具包、添加配置文件、创建类的实例对象、获取数据库对象、CRUD。
本项目所使用的代码测试如下:LitePal操作数据库测试代码
1(蓝色笔迹).首先我们双击左侧Gradle Scripts目录下的第二个(build.gradle(Module.app)),就会弹出右边这个名为app的文件。
2(红色笔迹).接着我们在红线部分添加上此内容以实现工具包的引入。
compile 'org.litepal.android:core:1.4.1'
3(黑色笔迹).最后我们单击右上角的Sync Now,这样编译器就会自动把这个工具包给下载并引入进你的项目中。
接下来我们需要给他配置一下配置文件,确保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>
写完上面的东西之后,你可能会发现有这个烦人的东西
这个的意思是说,你的XML文件中有一个空的实体,简单的说就是你两个version之间没有东西,我们可以把上述代码改成这样即可<version value="1" />
接下来我们还需要在Android程序中为LitePal注册一下,让我们的Android应用知道有这么个东西。
我们双击app/manifests/AndroidManifest.xml,在这里面的<application>
下,添加这么一行代码,来实现我们的目的android:name="org.litepal.LitePalApplication"
我们可以在我们的主程序下,新建一个包,名字叫做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
终于,我们对LitePal的配置完成了,可以开始使用它来操作数据库了。
首先我们想要操作数据库,就得先创建并获得数据库。我们可以在MainActivity.java中使用这样的代码来实现
所谓的创建并获取,就是说,如果没有该数据库,就先创建,再获取;如果有这个数据库,就直接获取。
增(创建)C
正常情况下我们通过如下方式创建并给一个对象赋值
LitePalTestTable01 litePalTestTable01 = new LitePalTestTable01();
litePalTestTable01.setId(0);
litePalTestTable01.setName("Test01");
litePalTestTable01.setPrice(12.25);
同样的,我们想要给数据库表添加一条数据的话也需要这样,先创建一个数据库表所对应的实体对象,然后将一些值赋值给它。
然后我们执行这样一条语句即可实现在数据库表中添加数据
litePalTestTable01.save();
查 R
1)查询表中所有数据
List<LitePalTestTable01> litePalTestTable01sList = DataSupport.findAll(LitePalTestTable01.class);
然后就可以通过遍历来访问所有表中的对象
2)查询表中的第一条(最后一条)数据
// 查询表中的第一条数据
LitePalTestTable01 firstLitePalTestTable011 = DataSupport.findFirst(LitePalTestTable01.class);
// 查询表中的最后一个数据
LitePalTestTable01 lastLitePalTestTable011 = DataSupport.findLast(LitePalTestTable01.class);
3)按照一定的查询规则查询
select(),同数据库查询语句中的select,会返回一个ClusterQuery的对象
// 即select name,id语句,选择表的字段
DataSupport.select("name","id");
where(),同数据库查询语句中的where,它也会返回一个ClusterQuery对象
除此之外还有order(),limit(),offset()等方法,都可以用数据库查询语句来理解,它们很多都会返回一个ClusterQuery对象,就是说它们是可以叠加的。
比如,
这里面最后一个find方法,可以理解为form 表名,这样就基本上可以完整的对应上数据库的查询语句
改 U
当我们用上述方法获得到我们想要改的数据所对应的对象的之后,就可以使用set方法对我们想要更改的数据进行重新的set,然后重新调用save方法就可以成功更改表中数据了。
就像是
删 D
同样的我们在查找到想要操作的数据之后,就可以使用delete()方法对该数据进行删除
lastLitePalTestTable011.delete();
或者我们也可以玩个大的
// 删除id小于10的数据
DataSupport.deleteAll(LitePalTestTable01.class,"id<?","10");
很容易懂,以及按照id进行删除
// 删除id为1的数据
DataSupport.delete(LitePalTestTable01.class,1);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。