欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android之使用LitePal操作数据库

程序员文章站 2022-06-01 21:02:32
...

       在Android中可以使用SQLiteDatabase来操作SQLite数据库,但是有一种更加简单方便的方法,那就是使用LitePal。LitePal是一款开源的Android数据库框架,下面具体对LitePal的使用方法进行说明。

在使用LitePal之前需要对LitePal进行配置,分为下面三步:

1.导入LitePal库

      编辑app/build.gradle文件, 在dependencies闭包中添加如下一行代码:compile 'org.litepal.android:1.4.1'。这样就把LitePal成功引入到项目当中了。

2.配置litepal.xml文件

       右击app/src/main,目录—>NEW—>Directory,创建一个assets目录,然后在assets目录下新建一个litepal.xml文件,并往litepal.xml文件中添加如下代码:

  1. <?xml version = "1.0" encoding = "utf-8"?>
  2. <litepal>
  3. <dbname value = "BookStore"></dbname>
  4. <version values = "1"></version>
  5. <list>
  6. </list>
  7. </litepal>

其中dbname 标签指定数据库名,version标签指定数据库版本号,list标签指定表名。

3.配置LitePalApplication

       打开AndroidManifest.xml文件,在application标签内添加一行代码:android:name = "org.litepal.LitePalApplication"。这样LitePal的所有功能都可以正常工作了。

 

一. 创建和升级数据库:

1.创建数据库

在LitePal中,一张表对应着一个Java类,下面新建一个Book类,代码如下:

  1. public class Book{
  2. private int id;
  3. private String author;
  4. private String name;
  5. private double price;
  6. private int pages;
  7. public int getId(){
  8. return id;
  9. }
  10. public void setId(int id){
  11. this.id = id;
  12. }
  13. public String getName(){
  14. return name;
  15. }
  16. public void setName(String name){
  17. this.name = name;
  18. }
  19. public String getAuthor(){
  20. return author;
  21. }
  22. public void setAuthor(String author){
  23. this.author = author;
  24. }
  25. public int getPages(){
  26. return pages;
  27. }
  28. public void setPages(int pages){
  29. this.pages= pages;
  30. }
  31. public double getPrice(){
  32. return price;
  33. }
  34. public void setPrice(double price){
  35. this.price= price;
  36. }
  37. }

代码很简单,在Book类中定义了6个字段,每个字段对应表中的一个列。并且每个字段都有一个get()和set()方法。用于获取和设置数据。这样一个Book类就对应了一张Book表。

定义完Book类之后还需要将类添加到litepal.xml中,打开litepal.xml文件,在list标签内添加一行代码:

  1. <list>
  2. <mapping class = "com.example.litepaltest.Book"></mapping>
  3. </list>

在list标签内添加刚刚我们定义的Book类,这样在创建数据库的时候同时也会创建一张Book表。

2.升级数据库

假如我们想再添加一张Category表,那么只需要再新建一个Category类就可以了,代码如下:

  1. public class Category{
  2. private int id;
  3. private String categoryName;
  4. private int categoryCode;
  5. public void setId(int id){
  6. this.id = id;
  7. }
  8. public coid setCategoryName(String categoryName){
  9. this.categoryName = categoryName;
  10. }
  11. public void setCategoryCode(int categoryCode){
  12. this.categoryCode = categoryCode;
  13. }
  14. }

新建完Category类之后,同样将该类添加到litepal.xml文件中的list标签内:

<mapping calss = "com.example.litepaltest.Category"></mapping>

同时更改version标签的版本号:<version values = "2" ></version>

运行程序,此时数据库内就多了一个Category表了。

 

二. 使用LitePal进行添加(C)、更新(U)、删除(D)、查询数据(R)操作:

假设我们想要对Book表进行CUDR操作,首先需要在Book类中添加Book类的继承结构:

  1. public class Book extends DataSupport{
  2. ...
  3. }

这是因为要对表内数据进行操作需要继承DataSupport类。

1.添加数据

代码如下:

  1. Book book = new Book();
  2. book.setName("thinking of java");
  3. book.setAuthor("jack");
  4. book.setPages(454);
  5. book.setPrice(18);
  6. book.save();

首先创建一个Book类的实例,然后调用类中的各种set()方法来添加数据,最后再调用save()方法就能完成数据添加操作了。

2.更新数据

代码如下:

  1. Book book = new Book();
  2. book.setPrice(14);
  3. book.updateAll("name = ? ","thinking of java");

通过调用Book类的updateAll()方法来更新数据,方法参数指定更新的对象。

3.删除数据

代码如下:

DataSupport.deleteAll(Book.class,"name = ?","thinking of java");

直接调用DataSupport类的deteleAll()方法来删除数据,deteleAll()方法第一个参数指定操作的表对象,第二个和第三个参数指定删除的对象。

4.查询数据

代码如下:

  1. List<Book> books = DataSupport.findAll(Book.class);
  2. for(Book book: books){
  3. book.getName();
  4. book.getAuthor();
  5. book.getPages();
  6. book.getPrice();
  7. }

通过调用DataSupport类的findAll()方法来获取数据,findAll()方法返回值是一个Book类型的List集合,接下来再通过for循环和get()方法就可以得到表内的数据了。

上一篇: 神奇的JavaScript

下一篇: TCHS-3-250