本篇博文主要讲解如何利用Android数据库本地搭建存储机制,以及根据某个方法地址,获取到存储的所有节点。
- 做移动开发时,数据库存储是不可避免的。很多需求可以用到数据库。如:登陆的id,password,图表chart的温度,Mac地址等;
- 因此我们就需要去了解Android原生是如何去实现此功能,又几种方式可以实现。
- 接下来就具体的看代码:
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数据库的引入,存储,获取信息,就讲解到此,相信各位看官会看懂,很简单的。
最后,谢谢各位的阅读,若有不懂的可以留言咨询本博主,如有不对之处,欢迎多多指点迷津,相互学习,共同进步。
~~~嘤嘤嘤,貌似今天圣诞节呀,祝各位圣诞节嗨皮,欢乐圣诞。