SQLite开源库LitePal

官方Github地址:
https://github.com/LitePalFramework/LitePal

本文章开源Demo地址:
https://github.com/EverZc/SQLitePal

使用:
首先配置AndroidManifest.xml

android:name="org.litepal.LitePalApplication"

assets文件夹中新建XML文件

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="BookStore"></dbname>
    <version value="1"></version>
    <list>
        <!--映射表-->
        <mapping class="com.zc.myapplication.BookTable"></mapping>
    </list>
</litepal>

创建表

  Connector.getDatabase();

升级数据库的时候 只需要在Util中直接添加想要的列就可以. LitePal会自行保存之前的数据的.

添加数据
首先让表继承 DataSupport

                Book book=new Book();
                book.setName("西游记");
                book.setAuthor("吴承恩");
                book.setPages(456);
                book.setPrice(16.96);
                book.setPress("未知");
                //调用此方法完成添加数据操作
                book.save();

更新数据

                Book book=new Book();
                book.setPrice(19.666);
                book.setPress("中华出版社");
                //约束条件 类似于where
                book.updateAll("name=? and author=?","钢铁是怎样练成的","奥斯托洛夫斯基");

删除数据

//删除有约束条件的数据
 DataSupport.deleteAll(Book.class,"price<?","18");
 //删除ID为2的数据
 DataSupport.delete(Book.class, 2);
 //删除整个表的数据
 DataSupport.delete(Book.class);

查询数据

List<Book> books=DataSupport.findAll(Book.class);
                for (Book book:books){
                    Log.d("------",book.getName());
                    Log.d("------",book.getAuthor());
                    Log.d("------",book.getPress());
                    Log.d("------", String.valueOf(book.getPrice()));
                    Log.d("------", String.valueOf(book.getPages()));

                }

                //查询表第一个数据
                Book first=DataSupport.findFirst(Book.class);
                //查询表最后一个数据
                Book last=DataSupport.findLast(Book.class);
                Log.e("------", first.toString());
                Log.e("------", last.toString());

                //查询哪几列的数据,对应SQL关键字select
                List<Book> books=DataSupport.select("name","author").find(Book.class);
                //where方法用于指定查询的约束条件 对应SQL关键字where
                List<Book> books1=DataSupport.where("pages>?","400").find(Book.class);
                //order 用于指定结果的排序方式  desc表示降序  asc或者默认表示升序
                List<Book> books2=DataSupport.order("price desc").find(Book.class);
                //limit 方法用于指定查询结果的数量 例如如下查询3条
                List<Book> books3=DataSupport.limit(3).find(Book.class);
                //offset()用于指定查询结果的偏移量,比如查询第2 3 4条数据
                List<Book> books4=DataSupport.limit(3).offset(1).find(Book.class);

                //任意组合一个
                List<Book> books5=DataSupport.select("name","pages")
                                             .where("pages>?","400")
                                             .order("pages")
                                             .limit(10)
                                             .offset(10)
                                             .find(Book.class);


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值