zoukankan      html  css  js  c++  java
  • LitePal

     

    Litepal采用的是对象关系映射(ORM)模式
     
    LitePal的配置工作。
    1.添加依赖 
    compile 'org.litepal.android:core:1.3.2'

    2.配置litepal.xml文件  在src/main创建assets目录 然后在目录下创建一个litepal.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <litepal>
        <dbname value="BookStore"></dbname>
    
        <version value="1"></version>
    
        <list></list>
    
        <!--dbname标签用于指定数据库名
        version用于指定数据库版本号
        list标签用于指定所有的映射模型-->
    </litepal>

    3.配置LitepalApplication 修改AndroidManifest中的代码

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

    创建和升级数据库

    创建:

    1.写一个java bean
    2.将写的java bean 的类添加到影射模型列表中
    修改litepal.xml里的list标签
    <list>
        <mapping class="co.example.leo.litepal.Book"></mapping>
        <!--使用mapping标签声明我们要配置的映射模型类,一定要使用完整的类名-->
    </list>
    3.调用创建数据库
    Connector.getDatabase();    

    升级:

    如果想要添加一个列 只需直接修改Book类中代码 添加一个字段即可
    如果需要添加一个表 只需新建一个java bean 然后将版本号加1 并将类添加到映射模型列表中
     
    Litepal 添加数据
    Litepal进行表管理的操作时不需要模型类有任何的继承结构,但进行CRUD的时候,必须要继承自DataSupport类才可以
    1、让模型类继承自DataSupport 
    2. 设置数据 调用save方法
    Button addData = (Button)findViewById(R.id.add_data);
        addData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Book book = new Book();
                book.setName("The Da Vinci Code");
                book.setAuthor("Dan Brown");
                book.setPages(454);
                book.setPrice(16.96);
                book.setPress("Unknow");
                book.save();
            }
        });

    Litepal 更新数据

    最简单的一种更新方式就是对已经存储的对象重新设值 然后重新调用save()方法即可
    已存储的对象: 对象是否以存储就是根据调用model.isSaved()方法的结果来进行判断即可,返回true表示已存储,false表示未存储 
    一种情况是已经调用过modle.save()方法去添加数据了
    另一种情况是model对象是通过Litepal提供的查询API查出来的
    这两种情况都会返回true
     1 Button updateData = (Button)findViewById(R.id.update_data);
     2     updateData.setOnClickListener(new View.OnClickListener() {
     3         @Override
     4         public void onClick(View v) {
     5             Book book = new Book();
     6             book.setName("The Da Vinci Code");
     7             book.setAuthor("Dan Brown");
     8             book.setPages(454);
     9             book.setPrice(16.96);
    10             book.save();
    11             book.setPages(124);
    12             book.save();
    13         }
    14     });
    显示添加了一条Book数据 
    然后调用setPages对书的页数进行了修改,之后再次调用save方法。
    第二种方式
    public void onClick(View v) {
            Book book = new Book();
            book.setPages(123);
            book.updateAll("name = ?","The Da Vinci Code");
        }
     
    设置默认值
    Book book = new Book()
    book.setDefault("pages");
    book.updateAll();
    

     

    删除数据

        //第一个参数用于指定删除那张表的数据 后面的参数用于指定约束条件
        DataSupport.deleteAll(Book.class,"price < ?","15");

    查询数据

    List<Book> books = DataSupport.findAll(Book.class);
    for(Book book : books){
       
    }

    Litepal的其他查询API

     

     

     

  • 相关阅读:
    js如何识别后端返回的“↵”,让其换行
    ReactNative插件
    ReactNative踩坑
    js对当前时间进行处理
    vue-awesome-swiper手动滑动后不再自动轮播的问题
    HTML5知识点汇总
    懒加载的实现原理及一些实现方法
    使用node.js实现多人聊天室(socket.io、B/S)
    [vue学习] 卡片展示分行功能简单实现
    [vue学习]快速搭建一个项目
  • 原文地址:https://www.cnblogs.com/chase1/p/7142681.html
Copyright © 2011-2022 走看看