Android开源库基础——LitePal

LitePal是什么?

LitePal是Android开源的数据库框架,采用了对象关系映射(ORM)模式,方便开发者对数据库进行操作 。可通过ADB命令查看并操作数据库。

LitePal使用

添加依赖:

implementation 'org.litepal.android:core:1.6.1'

修改Manifest文件中的代码,在<Application>中指定name:

android:name="org.litepal.LitePalApplication"

如果已有自定义Application,则在其onCreate()中调用:

LitePalApplication.initialize(context);

创建数据库

新建名为Book的javabean类:

public class Book {
    private int id;
    private String author;
    private double price;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

在main目录下新建assets目录,再新建litepal.xml文件,其中dbname指定数据库名,version指定数据库版本号,list标签指定映射模型:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="BookStore"/>
    <version value="1"/>
    <list>
        <mapping class="com.example.demo0.Book"/>
    </list>
</litepal>

具体创建只需要调用以下方法:

Connector.getDatabase();

更新数据库

添加数据库字段可直接修改javabean类,新增数据库表则需要在litepal.xml添加映射,再次调用Connector.getDatabase()方法时会自动更新。

添加数据

首先要让javabean继承DataSupport

public class Book extends DataSupport

新建Book实例,最后调用save()方法即完成添加:

Book book=new Book();
book.setName("tom");
book.setAuthor("john");
book.setPrice(10);
book.setId(1);
book.save();

查询数据

查询全部数据:

List<Book> books = DataSupport.findAll(Book.class);
       for (Book book : books) {
           Log.d("MainActivity", book.getName() + book.getAuthor() + book.getPrice() + book.getId());
       }

查询指定列:

List<Book> books = DataSupport.select("name").find(Book.class);

按条件查询:

List<Book> books = DataSupport.where("name=?", "tom").find(Book.class);

对结果排序:

List<Book> books = DataSupport.order("id desc").find(Book.class);

限定结果数量:

List<Book> books = DataSupport.limit(2).find(Book.class);

更新数据

Book book = new Book();
book.setPrice(20);
book.updateAll("name=?", "tom");

删除数据

不指定条件则为删除全部数据

DataSupport.deleteAll(Book.class, "price=?", "20");

使用SQL访问

litepal也支持原生sql访问,但这样返回的结果为Cursor实例

Cursor cursor = DataSupport.findBySQL("select * from book");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值