IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 使用LitePal操作数据库 -> 正文阅读

[移动开发]使用LitePal操作数据库

使用LitePal操作数据库

1. 配置LitePal

在app/build.gradle文件中添加如下内容:

dependencies {
    implementation 'org.litepal.android:core:1.3.2'
}

接下来配置litepal.xml文件,创建一个assets目录,创建位置如下:
在这里插入图片描述

在assets目录下创建文件litepal.xml文件标签用于指定数据库名,标签用于指定数据库版本号,标签用于指定所有的映射类型。

<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
    <dbname value="Book"></dbname>
    <version value="1"></version>
    <list>
    </list>
</litepal>

修改清单文件代码

<application
    ......
    ......
    android:name="org.litepal.LitePalApplication">
</application>

2. 创建和升级数据库

LitePal采取对象关系映射模式,将面向对象语言与面向关系的数据库之间建立一种映射关系。

定义一个Book类,代码如下所示:

public class Book {
    private int id;
    private String author;
    private double price;
    private int pages;
    private String name;
    public Book(int id, String author, double price, int pages, String name) {
        this.id = id;
        this.author = author;
        this.price = price;
        this.pages = pages;
        this.name = name;
    }
    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", pages=" + pages +
                ", name='" + 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 int getPages() {
        return pages;
    }
    public void setPages(int pages) {
        this.pages = pages;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

修改litepal.xml中的代码,如下所示,这里使用标签来声明要配置的模型类,不管多少模型需要映射都使用同样的方法配置在list标签下即可。

......
<list>
    <mapping class="com.aye.game2048.Book"/>
</list>
......

在MainActivity中实现创建数据库,在按钮响应事件中编写以下代码:

careteBt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Connector.getDatabase();
    }
});

查看建表情况,建表成功

!](https://img-blog.csdnimg.cn/c0ce5e340657495f8e49191d436ffcfb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif4oGg6L6e5b2S5Lmf,size_20,color_FFFFFF,t_70,g_se,x_16)

如果想要对数据库进行更新,如添加新表Category,只需创建Category的javaBean类,然后在litepal.xml文件的list标签下添加一条mapping标签的语句即可,运行程序,重新点击创建数据库按钮。

3. 使用LitePal对数据进行增删改查

添加数据

首先使JavaBean类Book类继承DateSupport,修改Book类的代码

public class Book extends DataSupport {
    ......
}

在MainActivity中编写按钮事件响应代码

insertBt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Book book=new Book();
        book.setName("First line of code");
        book.setAuthor("Guo Lin");
        book.setPages(570);
        book.setPrice(79.00);
        book.save();  //该方法是DataSupport类中继承而来的,该方法就可以完成数据库的添加操作
    }
});

修改数据

在两种情况下LitePal会认为该数据是已存储的数据,1.已经调用过save方法去添加数据了,2.能通过litepal提供的api查询出来的数据

        updateBt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Boo book=new Book();
                book.setPages(320);
                //参数为指定约束,即为name为First line of code的书籍修改页数为320
                book.updateAll("name = ?","First line of code");
            }
        });

当要把一个字段的值设置为默认值时,需要使用LitePal的setToDefault方法

//意思为将所有数据的pages更新为默认值0
book.setToDefault("pages");
book.updateAll();

删除数据

代码如下:

        deleteBt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //删除数据中所有页数大于300的数据
                DataSupport.deleteAll(Book.class,"pages>?","300");
            }
        });

查询数据

        selectBt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //查询所有数据
                List<Book> bookList= DataSupport.findAll(Book.class);
                for (Book book:bookList){
                    Log.i("DB",book.toString());
                }
                //查询第一条数据
                Book book=DataSupport.findFirst(Book.class);
                Log.i("First",book.toString());
                //指定查询name和author两列数据
                List<Book> bookList2=DataSupport.select("name","author").find(Book.class);
                for (Book book2:bookList2){
                    Log.i("selectName",book2.toString());
                }
                //约束条件,查询pages大于100的数据
                List<Book> bookList3=DataSupport.where("pages>?","100").find(Book.class);
                for (Book book2:bookList3){
                    Log.i("where",book2.toString());
                }
                //指定排序方式,按照pages从大到小排序
                List<Book> bookList4=DataSupport.order("pages desc").find(Book.class);
                for (Book book2:bookList4){
                    Log.i("order",book2.toString());
                }
            }
        });
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 08:13:48  更:2021-11-25 08:16:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:46:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码