LitePal

作者: Aptitude | 来源:发表于2018-08-26 20:52 被阅读0次

    简介

    LitePal是一款开源的Android数据库开发框架,采用了对象关系映射(ORM)的模式(即将面向对象的语言和面向关系的数据库之间建立一种映射关系),对数据库的常用功能进行了封装,实现建表和增删改查的功能。

    配置LitePal

    1. 添加依赖项

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

    2. 配置litepal.xml文件

    <litepal>
        <!--dbname 为数据库的名字-->
        <dbname value="cool_weather"/>
        <!--数据库版本指定为1-->
        <version value="1"/>
        <!--将实体类添加到映射列表中-->
        <list>
            <mapping class="com.example.stardream.coolweather.db.Province"/>
            <mapping class="com.example.stardream.coolweather.db.City"/>
            <mapping class="com.example.stardream.coolweather.db.County"/>
        </list>
    </litepal>
    

    3. 修改AndroidManifest.xml文件

    将项目的application配置为org.litepal.LitePalApplication

    android:name="org.litepal.LitePalApplication"
    

    创建和升级数据库

    1.创建实体类

    package com.example.stardream.coolweather.db;
    
    import org.litepal.crud.DataSupport;
    
    /**
     * Created by StarDream on 2018/8/22.
     */
    //LitePal中的每一个实体类都应该继承DataSupport
    public class Province extends DataSupport {
        private int id;  //实体类具有的id
        private String provinceName;  //省份的名字
        private int provinceCode;  //省的代号
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getProvinceName() {
            return provinceName;
        }
    
        public void setProvinceName(String provinceName) {
            this.provinceName = provinceName;
        }
    
        public int getProvinceCode() {
            return provinceCode;
        }
    
        public void setProvinceCode(int provinceCode) {
            this.provinceCode = provinceCode;
        }
    }
    

    City实体类和County实体类同理。每个实体类代表一张表,实体类中的属性代表表中的每一列。

    2.创建数据库

    Connector.getDatabase();
    

    基本操作

    1.添加数据

    Province province = new Province();
                        //解析出省份的id并将其赋值给province对象
                        province.setProvinceCode(provinceObject.getInt("id"));
                        //解析出省份的name并将其赋值给province对象
                        province.setProvinceName(provinceObject.getString("name"));
                        //将这一个省份保存到表中
                        province.save();
    

    2.更新数据

    province.setProvinceName("北京");
    province.save();
    //或者还有一种简介更新方式
    province.updateAll("provinceName=?","北京");
    

    3.删除数据

    DataSupport.deleteAll(Province.class,"name = ?","北京");
    

    4.查询数据

    List<Province> provinces = DataSupport.findAll(Province.class);
    for(Province province :provinces){
      Log.d("Activity","Province name is"+province.getProvinceName());
    }
    //另外还可以这样查询
    cityList = DataSupport.where("provinceId = ?",String.valueOf(selectedProvince.getId())).find(City.class);
            for(City city : cityList){
                if(city.getProvinceId() == selectedProvince.getId()){
                    cityListNum++;
                }
            }
    

    以上就是LitePal的基本操作。

    相关文章

      网友评论

          本文标题:LitePal

          本文链接:https://www.haomeiwen.com/subject/llcuiftx.html