Android LitePal的基本用法

一、首先要配置LitePal

配置方法如下:
1、编辑app/build.gradle文件,在dependencies中加上

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

2、在app/src/main目录新建一个文件夹assets,然后在assets目录,右键New->File->新建一个文件名为litepal.xml的文件,记住要把.xml也打进去。然后编辑litepal.xml的内容为:

<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
    <dbname value="BookStore"></dbname>
    <version value="2"></version>
    <list>
        <mapping class="com.example.litepaltest.Book"></mapping>
        <mapping class="com.example.litepaltest.Category"></mapping>
    </list>
</litepal>

其中那两行mapping,是把Book类和Category类添加到映射模型列表当中。
3、修改AndroidManifest.xml中的代码,在<application中加入一行

android:name="org.litepal.LitePalApplication"

这样就配置完成了。

**

二、创建和升级数据库

**
1、新建Book类和Category类:

package com.example.litepaltest;

import org.litepal.crud.DataSupport;

public class Book extends DataSupport {
    private int id;
    private String author;
    private double price;
    private int pages;
    private int another;
    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 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;
    }

    public void setAnother(int another){
        this.another=another;
    }
    public int getAnother(){
        return another;
    }
}

package com.example.litepaltest;

import android.provider.ContactsContract;

import org.litepal.crud.DataSupport;

public class Category extends DataSupport {
    private int id;
    private String categoryName;
    private int categoryCode;

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

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public void setCategoryCode(int categoryCode) {
        this.categoryCode = categoryCode;
    }
}


2、在activity_main.xml中,添加几个按钮,用于实现不同的操作

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/create_database"
        android:text="Create database"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/add_data"
        android:text="Add data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/update_data"
        android:text="Update data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/delete_data"
        android:text="Delete data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/query_data"
        android:text="Query data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

3、在MainActivity中,注册按钮监听器

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button createDatabase=(Button)findViewById(R.id.create_database);
        Button addData=(Button)findViewById(R.id.add_data);
        Button updateData=(Button)findViewById(R.id.update_data);
        Button deleteData=(Button)findViewById(R.id.delete_data);
        Button queryData=(Button)findViewById(R.id.query_data);
        createDatabase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LitePal.getDatabase();
            }
        });
        addData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Book book=new Book();
                book.setName("The Da Vinci Code");
                book.setAuthor("Dan Brown");
                book.setPages(454);
                book.setPrice(16.96);
                book.setAnother(1);
                book.save();
                Book book2=new Book();
                book2.setName("The Lost Symbol");
                book2.setAuthor("Dan Brown");
                book2.setPages(510);
                book2.setPrice(19.95);
                book2.setAnother(2);
                book2.save();
            }
        });
        updateData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Book book=new Book();
                //新建一个book实例,然后直接调用setPrice()方法设置要更新的数据,使用updateAll()方法,更新所有书名是The Da Vinci Code且作者是Dan Brown的数据的价格为10.99
                book.setPrice(10.99);
                book.updateAll("name=? and author=?","The Da Vinci Code","Dan Brown");

                //设置为默认值的方法
                //Book book=new Book();
//                book.setToDefault("pages");
//                book.updateAll();
                //以上几行代码表示把所有书的页数都修改为0,因为int的默认值是0,setToDefault是设置为默认值的意思
            }
        });
        deleteData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //删除所有价格小于15的书
                //第一个参数是表,后面两个参数是约束条件
                DataSupport.deleteAll(Book.class,"price<?","15");
            }
        });
        queryData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //查找Book表的所有数据
                List<Book> books=DataSupport.findAll(Book.class);
                for(Book book:books){
                    Log.d("MainActivity","book name is"+book.getName());
                    Log.d("MainActivity","book price is"+book.getPrice());
                }

            }
        });
    }

LitePal.getDatabase()创建了一个数据库,名为BookStore,其中有两个表Book和Category,这些信息都是在litepal.xml中设置的。如果需要添加某个表的属性,只需在那张表对应的类里添加想要添加的属性即可;如果想要新建一个表格,则在litepal.xml的mapping中添加,然后新建对应的类(需继承DataSupport才能进行后续的添加删除等操作)即可,修改完毕后,最后将litepal.xml的<version value值加1,表示更新.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值