Android数据库LitePal的基本用法详解

前言

正好项目用了这种数据存储方式,特地写一篇加深印象,在我看来,LitePal是使用最简单,集成最方便的数据库,没有之一。

LitePal 简介

LitePal 是一款开源的 Android 数据库框架,它采用了对象关系映射(ORM)的模式,将我们平时使用的一些数据库(比如 Sqlite)功能进行了封装。

配置

第一步

gradle注入:

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

这里我的版本是1.6.1的,如果想获得最新版本,请看这里:https://github.com/LitePalFramework/LitePal

第二步

接着需要配置 litepal.xml 文件,在 app/src/main 目录右键 -> New -> Directory , 创建一个 assets 目录,在该目录下新建一个 litepal.xml 文件,编辑内容如下:

 <?xml version="1.0" encoding="utf-8"?>
 <litepal>
   <dbname value="hskj_user" />
   <version value="1" />
   <list></list>
 </litepal>

说明: <dbname>用于设定数据库的名字,可以随便起名,我这里是hskj_user,<version>用于设定数据库的版本号,<list>用于设定所有的映射模型,我们稍后就会用到。

第三步

配置 LitePalApplication,这里有2种方法:

①如果项目的Application没有继承其他的Application,可以按照下面方式写:

 public class MyApplication extends LitePalApplication {
    ...
 } 

②由于我的项目集成了MultiDexApplication,如下:

所以我选择了第二种方式配置,在application中的onCreate()配置

@Override
public void onCreate() {
  super.onCreate();
  LitePal.initialize(this);
}

经过上面的步骤已经将 LitePal 配置完成,接下里开始建表:

import org.litepal.crud.DataSupport;
/**
 * Created by zjp on 2018/1/16 16:22.
 */
public class TestEntity extends DataSupport {

  private int id;
  private int age;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public int getAge() {
    return age;
  }

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

其实这就是一个 JavaBean ,定义了两个简单的属性,其中id这个字段可写可不写,因为即使不写这个字段,LitePal也会在表中自动生成一个id列,毕竟每张表都一定要有主键的。

建好了表之后,接下来还需要将它添加到我们的模型列表中:

 <?xml version="1.0" encoding="utf-8"?>
 <litepal>
   <dbname value="hskj_user" />
   <version value="1" />
   <list>
      <mapping class="com.example.zjp.litepaldemo.bean.TestEntity"></mapping>
   </list>
 </litepal>

现在我们就可以测试了,启动一个 Activity ,我这里只添加了一个按钮,在其点击事件下写下面一句代码:

LitePal.getDatabase(); 

等运行成功之后,可以打开Android Device Monitor查看是否创建成功了。如图:

可以看到刚刚成功创建的hskj_user数据库了。

这里我暂时只演示下数据存储和删除吧,可以在自己工程中新建一个类,来对LitePal数据库操作,我是这样写的:

/**
 * Created by zjp on 2018/1/12 10:01.
 */
 public class SearchHistroyDao {
   /**
    * 获取所有频道
    *
    * @return
    */
    public static List<TestEntity> getChannels() {
      return DataSupport.findAll(TestEntity.class);
    }

   /**
    * 保存年龄关键字
    */
    public static void saveHistoryKeyword(int ageVal) {
       if (ageVal == 0) return;
       TestEntity testEntity = new TestEntity();
       testEntity.age = ageVal;
       testEntity.save();
    }

    /**
     * 清空所有频道
     */
     public static void cleanChanels() {
       DataSupport.deleteAll(TestEntity.class);
     }
 }

然后在你要保存数据的时候,调用SearchHistroyDao.saveHistoryKeyword(*),就能成功保存数据库,

删除所有数据时候调用:SearchHistroyDao.cleanChanels()即可。好了,LitePal数据讲解完成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android利用LitePal操作数据库存取图片
(0)

相关推荐

  • Android利用LitePal操作数据库存取图片

    Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型).对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢迎,他们认为,在很多数据库语言里,处理大字段都是不容易的,像图片这样的文件放在数据库里会有问题:对数据库的读写速度永远赶不上文件系统的处理速度,使数据库变得巨大:但也有很多人认为像图片这样的数据存放在数据库中也有好处:易于备份,且备份速度绝对比备份文件快,比较容易数据迁移等等.其实这两种方法都有优缺

  • Android数据库LitePal的基本用法详解

    前言 正好项目用了这种数据存储方式,特地写一篇加深印象,在我看来,LitePal是使用最简单,集成最方便的数据库,没有之一. LitePal 简介 LitePal 是一款开源的 Android 数据库框架,它采用了对象关系映射(ORM)的模式,将我们平时使用的一些数据库(比如 Sqlite)功能进行了封装. 配置 第一步 gradle注入: compile 'org.litepal.android:core:1.6.1' 这里我的版本是1.6.1的,如果想获得最新版本,请看这里:https://

  • android之SeekBar控件用法详解

    MainActivity.java package com.example.mars_2400_seekbar; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.app.Activity; import android.os.Bundle; import a

  • android之RatingBar控件用法详解

    MainActivity.java package com.example.mars_2500_ratingbar; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.app.Activity; import android.os.Bundle; import

  • Android AlertDialog的几种用法详解

    AlertDialog的几种用法 xml代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="

  • Android开发之Notification通知用法详解

    本文实例讲述了Android开发之Notification通知用法.分享给大家供大家参考,具体如下: 根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉.或者,只要程序在运行就一直显示通知栏图标. 下面对Notification类中的一些常量,字段,方法简单介绍一下: 常量: DEFAULT_ALL 使用所

  • Android编程开发之NotiFication用法详解

    本文实例讲述了Android编程开发之NotiFication用法.分享给大家供大家参考,具体如下: notification就是通知的意思,安卓中指通知栏,一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个快讯,这时手从上方滑动状态栏就可以展开并处理这个快讯. 在帮助文档中,是这么说的, notification类表示一个持久的通知,将提交给用户使用NotificationManager.已添加的Notification.Builder,使其更容易构建通知

  • Android中的Selector的用法详解及实例

    Android中的Selector的用法 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/b

  • Android编程中HTTP服务用法详解

    本文实例讲述了Android编程中HTTP服务用法.分享给大家供大家参考,具体如下: 在Android中,除了使用java.net包下的API访问HTTP服务之外,我们还可以换一种途径去完成工作.Android SDK附带了Apache的HttpClient API.Apache HttpClient是一个完善的HTTP客户端,它提供了对HTTP协议的全面支持,可以使用HTTP GET和POST进行访问.下面我们就结合实例,介绍一下HttpClient的使用方法. 我们新建一个http项目,项目

  • Android 中 WebView 的基本用法详解

    加载 URL (网络或者本地 assets 文件夹下的 html 文件) 加载 html 代码 Native 和 JavaScript 相互调用 加载网络 URL webview.loadUrl(https://www.baidu.com/); 加载 assets 下的 html 文件 webview.loadUrl(file:///android_asset/test.html); 加载 html 代码 // 两个代码差不多 // 偶尔出现乱码 webview.loadData(); // 比

  • Android开发之AlarmManager的用法详解

    Android中的AlarmManager实质上是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver). 一.概述: 该类提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序.当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后自动启动目标程序,如果它没有正在运行.注册的闹钟会被保留即使设备处于休眠中(如果闹钟

随机推荐