LitePal的简单使用[一]

 

前言

LitePal是郭大神的杰作。

GitHub:https://github.com/LitePalFramework/LitePal

简单使用过程

集成

1)在app中的build.gradle中添加

dependencies {
    compile 'org.litepal.android:core:2.0.0'
}

2)在app->main中添加assets,添加litepal.xml文件,内容如下

<?xml version="1.0" encoding="utf-8"?>
<litepal>
  <!--数据库名-->
  <dbname value="User"></dbname>

  <!--数据库版本号,用于更新数据库-->
  <version value="1"></version>

  <list>
    <!--这里是类映射-->
  </list>
</litepal>

其中 dbname填写数据库名

version填写数据库版本号

list中添加数据库的实体Bean类

3)创建Application,并继承LitePalApplication,初始化

public class MyApplication extends LitePalApplication {
  @Override
  public void onCreate() {
    super.onCreate();
    //初始化
    LitePal.initialize(this);
  }
}

4)创建Bean User.class  继承DataSupport

public class User extends DataSupport{
  private String name;
  private String age;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getAge() {
    return age;
  }

  public void setAge(String age) {
    this.age = age;
  }
}

5)在litepal.xml中添加映射

litepal.xml更新为:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
  <!--数据库名-->
  <dbname value="User"></dbname>

  <!--数据库版本号,用于更新数据库-->
  <version value="1"></version>

  <list>
    <!--这里是类映射-->
    <mapping class="com.wj.litepal.User"></mapping>
  </list>
</litepal>

方法

1)增:

/**
   * 添加用户
   */
  private void addUser() {
    //方式一
    ContentValues values = new ContentValues();
    values.put("name", "WJ");
    values.put("age", "18");
    long l = LitePal.getDatabase().insert("User", "", values);
    Log.v("LitePal Log", "插入成功 : " + l);

    //方式二
    User user = new User();
    user.setName("WJ 2");
    user.setAge("20");
    //返回是否插入成功的boolean值 不会打印错误日志
    boolean save = user.save();
    Log.v("LitePal Log", "插入成功 : " + save);
    //会打印出出错日志
    user.saveThrows();
  }

2)删:

/**
   * 删除用户
   */
  private void deleteUser() {
    int delete = DataSupport.delete(User.class, 2);
    Log.v("LitePal Log", "删除:" + delete);
  }

3)改:

/**
   * 更新用户
   */
  private void updateUser() {
    ContentValues values = new ContentValues();
    values.put("name", "WJ Hannah");
    DataSupport.update(User.class, values, 2);
  }

4)查:

/**
   * 查询用户
   */
  private void queryUser() {
    List<User> all = DataSupport.findAll(User.class);
    for (User u : all) {
      Log.v("LitePal Log", "查询:" + u.getName());
    }
  }

方法都运行一遍之后的日志:

06-14 16:34:12.707 23467-23467/? V/LitePal Log: 插入成功 : 1
06-14 16:34:12.710 23467-23467/? V/LitePal Log: 插入成功 : true
06-14 16:34:12.714 23467-23467/? V/LitePal Log: 查询:Name:WJ Age:18
06-14 16:34:12.714 23467-23467/? V/LitePal Log: 查询:Name:WJ 2 Age:20
06-14 16:34:12.714 23467-23467/? V/LitePal Log: *******************************
06-14 16:34:12.717 23467-23467/? V/LitePal Log: 查询:Name:WJ Age:18
06-14 16:34:12.717 23467-23467/? V/LitePal Log: 查询:Name:WJ Hannah Age:20
06-14 16:34:12.717 23467-23467/? V/LitePal Log: *******************************
06-14 16:34:12.720 23467-23467/? V/LitePal Log: 删除:1
06-14 16:34:12.721 23467-23467/? V/LitePal Log: 查询:Name:WJ Age:18
06-14 16:34:12.721 23467-23467/? V/LitePal Log: *******************************
06-14 16:34:12.723 23467-23467/? V/LitePal Log: Count:1

5)聚合函数

LitePal中一共提供了count()、sum()、average()、max()和min()这五种聚合函数

 

举例:查询数据库表中的所有数据的数量

private void countUser() {
    int count = DataSupport.count(User.class);
    Log.v("LitePal Log", "Count:" + count);
  }

数据库升级(删除Bean字段)

1)修改litepal.xml

<?xml version="1.0" encoding="utf-8"?>
<litepal>
  <!--数据库名-->
  <dbname value="User"></dbname>

  <!--数据库版本号,用于更新数据库-->
  <version value="2"></version>

  <list>
    <!--这里是类映射-->
    <mapping class="com.wj.litepal.User"></mapping>
  </list>
</litepal>

2)修改User.class 删除age字段

public class User extends DataSupport{
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

3)修改含有age的字段的方法后,打印日志

06-14 16:35:17.078 23827-23827/com.wj.litepal V/LitePal Log: 插入成功 : 2
06-14 16:35:17.080 23827-23827/com.wj.litepal V/LitePal Log: 插入成功 : true
06-14 16:35:17.084 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ
06-14 16:35:17.084 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ 3
06-14 16:35:17.084 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ 4
06-14 16:35:17.084 23827-23827/com.wj.litepal V/LitePal Log: *******************************
06-14 16:35:17.087 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ
06-14 16:35:17.087 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ Hannah
06-14 16:35:17.087 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ 4
06-14 16:35:17.087 23827-23827/com.wj.litepal V/LitePal Log: *******************************
06-14 16:35:17.088 23827-23827/com.wj.litepal V/LitePal Log: 删除:1
06-14 16:35:17.089 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ
06-14 16:35:17.089 23827-23827/com.wj.litepal V/LitePal Log: 查询:Name:WJ 4
06-14 16:35:17.089 23827-23827/com.wj.litepal V/LitePal Log: *******************************
06-14 16:35:17.090 23827-23827/com.wj.litepal V/LitePal Log: Count:2

结语

对LitePal的简单使用暂时到这里了。有什么问题和想法欢迎评论。

 

附:

GitHub:https://github.com/android99wj/MyLitePal

个人微信公众号:摩羯座程序媛的日常 (dreamflower_hannah)

CSDN:https://blog.csdn.net/wj9966

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摩羯座程序媛

打赏的老板越来越富

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值