Android之使用LitePal操作数据库

       在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文件中添加如下代码:

<?xml version = "1.0" encoding = "utf-8"?>
<litepal>
    <dbname value = "BookStore"></dbname>
 
    <version values = "1"></version>
 
    <list>
    </list>
</litepal>

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

3.配置LitePalApplication

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

 

一. 创建和升级数据库:

1.创建数据库

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

public class Book{
 
    private int id;
    private String author;
    private String name;
    private double price;
    private int pages;
    
    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id = id;
    }    
 
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    } 
 
    public String getAuthor(){
        return author;
    }
    public void setAuthor(String author){
        this.author = author;
    } 
 
    public int getPages(){
        return pages;
    }
    public void setPages(int pages){
        this.pages= pages;
    } 
 
    public double getPrice(){
        return price;
    }
    public void setPrice(double price){
        this.price= price;
    } 
}

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

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

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

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

2.升级数据库

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

public class Category{
    
    private int id;
 
    private String categoryName;
 
    private int categoryCode;
 
    public void setId(int id){
        this.id = id;
    }
    
    public coid setCategoryName(String categoryName){
        this.categoryName = categoryName;
    }
 
    public void setCategoryCode(int categoryCode){
        this.categoryCode = categoryCode;
    }
}

新建完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类的继承结构:

public class Book extends DataSupport{
    ...
}

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

1.添加数据

代码如下:

Book book = new Book();
book.setName("thinking of java");
book.setAuthor("jack");
book.setPages(454);
book.setPrice(18);
book.save();

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

2.更新数据

代码如下:

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

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

3.删除数据

代码如下:

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

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

4.查询数据

代码如下:

List<Book> books = DataSupport.findAll(Book.class);
for(Book book: books){
    book.getName();
    book.getAuthor();
    book.getPages();
    book.getPrice();
}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值