Android数据库存储LitePal与封装调用

版权声明:本文为博主原创文章,未经博主允许不得转载。若有问题,请联系QQ1215192693 https://blog.csdn.net/qq_37523448/article/details/85244201

本篇博文主要讲解如何利用Android数据库本地搭建存储机制,以及根据某个方法地址,获取到存储的所有节点。

  1. 做移动开发时,数据库存储是不可避免的。很多需求可以用到数据库。如:登陆的id,password,图表chart的温度,Mac地址等;
  2. 因此我们就需要去了解Android原生是如何去实现此功能,又几种方式可以实现。
  3. 接下来就具体的看代码:

LitePalSupport数据库操作。

一:声明《TmpBean.类文件》

import org.litepal.crud.LitePalSupport;

public class TmpBean extends LitePalSupport {

    public String getTmp() {
        return tmp;
    }

    public void setTmp(String tmp) {
        this.tmp = tmp;
    }

    public String getMax() {
        return max;
    }

    public void setMax(String max) {
        this.max = max;
    }

    public String getMac() {
        return mac;
    }

    public void setMac(String mac) {
        this.mac = mac;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getBat() {
        return bat;
    }

    public void setBat(String bat) {
        this.bat = bat;
    }

    public Long getTime() {
        return time;
    }

    public void setTime(Long time) {
        this.time = time;
    }

    private String tmp;//温度
    private String max;//最大值
    private String mac;//地址
    private String unit;//单位
    private String bat;//电量
    private Long time;//时间
}

二:声明《DadaModel类文件》

import com.dt.db.TmpBean;
import com.dt.utils.DateUtil;
import com.dt.utils.NormalShared;
import com.dt.utils.NormalUtil;

import java.util.Date;

public class DataModel {

    /**
     * 存储温度数据到数据库中
     */
    public static void saveTmpData(String data,NormalShared normalShared){
        String unit;
        String []allData = data.split(",");
        String mac = allData[4];
        String []macs = mac.split(":");
        String allmac = "S/N:0"+macs[0]+macs[1]+macs[2]+macs[3]+macs[4]+macs[5];

        allmac = allmac.toUpperCase();

        //计算时间
        Long time = DateUtil.getDateToLong(new Date(System.currentTimeMillis()));

        TmpBean tp = new TmpBean();

        tp.setMac(allmac);
   
        //当前温度--最大值--符号--低电量--MAC地址
        tp.setBat(allData[3]);
        tp.setTime(time);
        tp.save();

        //存储单位值
        normalShared.saveString("unit"+allmac,unit);
    }
}

此上方法,是获取到底层传递过来的数据信息,如数组《0,1,2,3,4》,在此方法中解析并且进行相对应的存储。

数据库已经实现,接下面就是存储:引入Model:

import com.dt.ui.model.DataModel;
import com.dt.utils.NormalShared;//存储
我这里假设底层给了我这样的值;这样就得到了想存储的数据!
String  datbse = “Dtemname,22,-89.3,23”;
displayTempData(datbse);
private void displayTempData(String data){
        if(data!=null){
            //存储温度数据到数据库
            DataModel.saveTmpData(data,normalShared);//这个方法就是存储到Model的数据库中
        }
    }

接下来就是获取到数据的信息操作:如下所示:
建立数组Arraylist

private List<TmpBean> tmpList = new ArrayList<>();

三:ChartModel类文件

import android.annotation.SuppressLint;
import android.util.Log;
import android.widget.TextView;
import com.dt.db.TmpBean;
import com.dt.utils.DateUtil;
import com.dt.utils.NormalUtil;
import org.litepal.LitePal;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ChartModel {

    /**
     * 获取当前的时间的100个数据
     * @param mac
     * @return tmpList
     */
    public static List<TmpBean> findTmpDataList(String mac){//存储的数据
        List<TmpBean> tmpList = LitePal.where("mac like ?",mac).order("time").limit(100).find(TmpBean.class);
        List<TmpBean> tmpListtwo = new ArrayList <>();

        for(int j = 0; j<tmpList.size();j++){
            TmpBean tp = tmpList.get(j);
            Log.i( "uasdfygska", tp.getTmp());
            if(!tp.getTmp().equals("999")&&!tp.getTmp().equals("-999")&&!tp.getTmp().equals("1111")){
                tmpListtwo.add(tp);
            }
        }
        //return tmpList;
        return  tmpListtwo;
    }
}

根据当前地址信息,时间time,获取到存储的值

tmpList = ChartModel.findTmpDataTimeList(mac, bt, et);//这个就是存储数据库中的数据,时间段获取前100个数据;

LitePal数据库的引入,存储,获取信息,就讲解到此,相信各位看官会看懂,很简单的。

最后,谢谢各位的阅读,若有不懂的可以留言咨询本博主,如有不对之处,欢迎多多指点迷津,相互学习,共同进步。

~~~嘤嘤嘤,貌似今天圣诞节呀,祝各位圣诞节嗨皮,欢乐圣诞。

猜你喜欢

转载自blog.csdn.net/qq_37523448/article/details/85244201