Android数据存储之LitePal

Android数据存储之LitePal

LitePal: 这是github上的开源库,稳定性强,操作简单,效率高等等

运用:

1.在build.gradle(app)添加依赖:

compile 'org.litepal.android:core:1.5.1'

2.app/src/main下新建一个路径命名:assets,然后在该目录下创建xml文件litepal.xml,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
 
<!--数据库名字.db-->
<dbname value = "BookStore"/>
 
<!--数据库版本,更新时改动版本-->
<version value = "1"/>
 
<!--这是自己新建的用于数据库存放表数据类型-->
<list>
    <mapping class = "testsdcard.cai.maiyu.mdaima06_01.bean.Book"/>
</list>
</litepal>

无疑是指定数据库名字,版本,还有一个后面你自己创建的数据表类型(可以先不添加)

3.在manifest中去配置:

在<application   

android:name="org.litepal.LitePalApplication"
.....
>
......

</application>

若是用自己的application也一样,记得在自己定义的application的onCreate方法中初始化:LitePal
。初始化(this);

4.创建数据表类:继承DataSupport

public class Book extends DataSupport{
    
    
    private int id;     //id
    private String name;    //书名
    private String author;  //作者
    private int pages;      //页数
    private double price;   //价格
  //  private String press; //出版社
 
//    public String getPress() {
    
    
//        return press;
//    }
//
//    public void setPress(String press) {
    
    
//        this.press = press;
//    }
 
    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;
    }
}

5.Activity中使用:

public class TestLitePalActivity extends AppCompatActivity {
    
    
 
    //创建数据库
    @ViewInject(R.id.create_database)
    private Button mBtnCreate;
 
    //增加数据
    @ViewInject(R.id.add)
    private Button mBtnAdd;
 
    //更新数据
    @ViewInject(R.id.update)
    private Button mBtnUpdate;
 
    //删除数据
    @ViewInject(R.id.delete)
    private Button mBtnDelete;
 
    //查询数据
    @ViewInject(R.id.retrieve)
    private Button mBtnRetrieve;
 
    private static final String TAG = "TestLitePalActivity";
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_database);
 
        ViewUtils.inject(this);
 
    }
 
    //创建数据库
    @OnClick(R.id.create_database)
    public void createDatabase(View view){
    
    
 
 
        //获取数据库
        LitePal.getDatabase();
    }
 
    /**
     * 添加数据
     * @param view
     */
    @OnClick(R.id.add)
    public void addData(View view){
    
    
 
        Book book = new Book();
        book.setName("大话数据结构");
        book.setAuthor("程杰");
        book.setPages(516);
        book.setPrice(43.00);
        //book.setPress("Unknow");//增加出版社
        book.save();
    }
 
 
    /**
     * 删除数据
     * @param view
     */
    @OnClick(R.id.delete)
    public void deleteData(View view){
    
    
 
        DataSupport.deleteAll(Book.class , "price < ?" , "60");
    }
    /**
     * 更新数据
     * @param view
     */
    @OnClick(R.id.update)
    public void updateData(View view){
    
    
        Book book = new Book();
        book.setPrice(38.50);
        book.updateAll("name = ? and author = ?" , "大话数据结构" , "程杰");
//更新数据为默认值
//        book.setToDefault("pages");
//        book.updateAll();
    }
    /**
     * 查询数据
     * @param view
     */
    @OnClick(R.id.retrieve)
    public void retrieveData(View view){
    
    
        List<Book> books = DataSupport.findAll(Book.class);
        for(Book book : books){
    
    
            Log.d(TAG , "book name is " + book.getName());
            Log.d(TAG , "book author is " + book.getAuthor());
            Log.d(TAG , "book pages is " + book.getPages());
            Log.d(TAG , "book price is " + book.getPrice());
        }
        //(2)添加限制:select--选定哪几列
        //where--约束条件,   order--结果排序 ,limit---结果的数量
        //offset---查询结果的便宜了offset(1)代表查询表中的从第2条开始
//        List<Book> books = DataSupport.select("name" , "author" ,"pages")
//                .where("pages > ?" , "600")
//                .order("pages")
//                .limit(10)
//                .offset(10)
//                .find(Book.class);
        //(3)用原生数据库语句查询
//        Cursor cursor = DataSupport.findBySQL("select * from Book where pages > ?" +
//                " and price < ?" ,"700" ,"60");
    }
}

注意:

(1)版本更新,只需要在litepal.xml中改版本号
(2)现在可利用DataSupport.findXXX就可以了
(3)记得创建数据表类要继承DataSupport类
(4)查询还支持多种查询,原生SQL语句查询,

如有侵权,请联系删除!

如果对您有帮助,麻烦点个赞。您的鼓励就是我的动力!

猜你喜欢

转载自blog.csdn.net/weixin_45167444/article/details/108635743