看看这次能坚持学习多久,老咸鱼了

litepal

这玩意就是 用来操作数据库的

使用步骤

数据库的创建

首先要在build.gradle中导入依赖:

implementation 'org.litepal.guolindev:core:3.1.1'
  1. 在src—>main下new Directory 取名为assets

  2. 在assets下new file,取名为litepal.xml

  3. 往其中键入

    <dbname></dbname>中的value是数据库的名称

    <version></version>中的value是数据库的版本号

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
   <dbname value="CityWeather"></dbname>
   <version value = "1"></version>
</litepal>
  1. 随后在AndroidMainfest.xml中的<application中键入

    <application
    android:name="org.litepal.LitePalApplication"
  2. 然后新建一个类,这里以今天做天气预报的City为例,里面的每一个字段即对应表中的每一个列,类名City则为表名,这个City类要继承LitePalSupport。

public class City extends LitePalSupport {
   private String city;
   private String cityId;

   public String getCity() {
       return city;
  }

   public void setCity(String city) {
       this.city = city;
  }

   public String getCityId() {
       return cityId;
  }

   public void setCityId(String cityId) {
       this.cityId = cityId;
  }
}
  1. 然后需要将City类添加到映射模型中,也就是最开始建的litepal.xml中,mapping标签中的class要完整到包名到我们创建的那个类

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
   <dbname value="CityWeather"></dbname>
   <version value = "1"></version>
   <list>
       <mapping class = "com.study.jsondui.City"></mapping>
   </list>
</litepal>
  1. 最后只需要进行一次任意的数据库操作或者对应的地方键入Connector.getDatabase();即可完成数据库的创建;我在这里是按书上的写个按钮然后设置监听,将Connector.getDatabase();键入。

 

添加数据、查询数据、删除数据

因为我是要做天气预报,所以今天这个没有学很多只学了最基本的一些

  1. 添加数据

    这里我也是按书上的写个按钮监听然后键入

Book book = new Book();
book.setCity("北京");
book.setCityId("1");
book.save();
  1. 查询数据

    我这边是加条件的查询对应的数据,也是写在按钮监听里面的

 List<City> cities = LitePal.where("city = ?","北京").find(City.class);
for (City city : cities){
Log.d("selectBei",city.getCityId());
}

还有就是将表格里所有数据全遍历出来,循环打印出来

List<City> books = LitePal.findAll(City.class);
for (City City:books){
   data.add(city.getName());
   data.add(city.getAuthor());
}
for (String ccc:data){
   Log.d("data",ccc);
}
  1. 删除数据

 LitePal.deleteAll(City.class,"City = ?","北京");

自己想的天气预报

今天就是想参考书做个天气预报,结果书里获取天气信息的网址不行了,然后我也去和风天气官网看了,看的也不是太懂,然后我就去百度智能云里面找了一个。然后他是一个网址返回的是城市名及城市的id,然后你将这个id在网址的后面加个 ?cityid=2 这个样子然后返回对应城市的天气。其实可以直接弄城市名字加后面,但是书里面好像是考虑到不知道他会有哪些城市,所以我打算先看看里面有哪些城市,然后放入数据库当中,然后到时候以列表的形式展示有多少的城市,然后点对应的城市返回对应的城市id以查询该城市的具体天气。今天卡在了不知道如何将用gson解析出来的json数据放入到数据库中。没办法以前不好好读书,现在脑子转不过来。一开始是拆开放入map中如何再放进去,后来想起来b站“程序员拉大锯”的教程视频里好像有就模仿了一下就出来了,成功的加到数据库里面,但是我还是脑子绕不过来,要是有大佬看见的话能不能教教我实体类那玩意到底是干啥的,里面有个List类型的集合result然后后面还调用了getResult();我有点懵,这玩意搞得不是很懂,就不写这里面了,明天再搞。敲代码还是很爽的啊哈哈哈哈哈哈。

遇到的问题

书里面实体类是继承DataSupport后来百度后发现这个被弃用了,现在是继承LitePalSupport。

 

参考文献:

《第一行代码》(第二版)

 

posted @ 2021-02-23 22:42  陈强强强强强  阅读(67)  评论(0)    收藏  举报