简介:

litepal是郭霖的一款开源的android数据库框架,采用关系映射(ORM)的模式,这是github

地址,最新版本已经更新到1.6,支持eclipse,gridle使用如下:

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

配置:

创建assets目录,新建litepal.xml文件:

litepal初始化有两种方式:

1.将你清单文件的Application换成LitePalApplication

android:name="org.litepal.LitePalApplication"

...

>

...

2.将你的Application继承自Application,然后在onCreat(),进行litepal的初始化

public class MyOwnApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

LitePal.initialize(this);

}

...

}

使用litepal

创建实体类

litepal需要用于映射的实体类需要继承DataSupport,并生成get和set方法,关于这两个方法,推荐一个库:

lombok,gridle使用添加:

compile 'org.projectlombok:lombok:1.16.18'

添加之后你的get和set方法只用在类名上面添加注解@Data就可以了,如下

@Data

public class Man{

@Column(unique = true, defaultValue = "unknown")

private int age;

private String name;

}

实体类支持注解约束:

@Column(unique = true) //是否唯一

@Column(defaultValue = "unknown") //指定字段默认值

@Column(nullable = false) //是否可以为空

@Column(ignore = true) //是否可以忽略

修改litepal.xml

当你添加表或修改表结构,都要修改litepal.xml,首先版本号要+1,如果添加表,还要添加

添加数据

Album album = new Album();

album.setName("album");

album.setPrice(10.99f);

album.setCover(getCoverImageBytes());

album.save();

Song song1 = new Song();

song1.setName("song1");

song1.setDuration(320);

song1.setAlbum(album);

song1.save();

Song song2 = new Song();

song2.setName("song2");

song2.setDuration(356);

song2.setAlbum(album);

song2.save();

更新数据

1.指定id:

Album albumToUpdate = new Album();

albumToUpdate.setPrice(20.99f); // raise the price

albumToUpdate.update(2);

2.条件更新:

Album albumToUpdate = new Album();

albumToUpdate.setPrice(20.99f); // raise the price

albumToUpdate.updateAll("name = ?", "小明");

3.多个条件用and连接

Album album= new Album();

album.setTitle("第3次更新");

album.updateAll("title = ? and age> ?", "第2次更新", "12");

4.更新全部数据,将表所有数据名字修改:

Man values = new Man();

values.put("Name", "小化工");

DataSupport.updateAll(Man.class, values);

5.异步更新数据

Album album = new Album();

album.setName("album");

album.setPrice(10.99f);

album.setCover(getCoverImageBytes());

album.saveAsync().listen(new SaveCallback() {

@Override

public void onFinish(boolean success) {

}

});

删除数据

1.指定ID

DataSupport.delete(Man.class, id);

2.条件删除,多个条件用and连接

DataSupport.deleteAll(Man.class, "age > ?" , "15");

3.删除全表数据

DataSupport.deleteAll(Man.class);

查询数据

1.查询第一条以及最后一条

News firstNews = DataSupport.findFirst(News.class);

News lastNews = DataSupport.findLast(News.class);

2.指定id

Song song = DataSupport.find(Song.class, id);

//指定多个id如下

//方式一:

List newsList = DataSupport.findAll(News.class, 1, 3, 5, 7);

//方式二:

long[] ids = new long[] { 1, 3, 5, 7 };

List newsList = DataSupport.findAll(News.class, ids);

3.查询所有

List allSongs = DataSupport.findAll(Song.class);

4.条件查询

查询 Man表 中 年龄大于12 的 第5到20条 数据,以插入时间倒序 排序方式呈现,只取 “名字”和“性别”和“身高” 三列内容。

List list = DataSupport.select("name", "sex","height")//需要的条目

.where("age> ?", "12")//条件

.order("inputTime desc")//倒序字段

.offset(5)//开始查询位置

.limit(15)//数据长度

.find(Man.class);//查询表

5.异步查询,用于代替findAll

DataSupport.findAllAsync(Song.class).listen(new FindMultiCallback() {

@Override

public void onFinish(List t) {

List allSongs = (List) t;

}

});

删除数据库

LitePal.deleteDatabase("数据库名");

完结

android 7使用litepal,android数据库litepal使用记录相关推荐

  1. Android数据库LitePal的存储操作

    本文属于转载,在此声明,出处:http://blog.csdn.net/guolin_blog/article/details/38556989 并且感谢guolin分享了这么精彩的博文.以下正文: ...

  2. android litepal可以指定存储目录吗,Android数据库LitePal的基本用法详解

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

  3. Android 第十二课 使用LitePal操作数据库(记得阅读最后面的注意事项哦)

    一.LitePal简介 1.(新建项目LitePalTest) 正式接触第一个开源库---LitePal LitePal是一款开源的Android 数据库框架,它采用了对象关系映射(ORM)的模式. ...

  4. Android的LitePal开源数据库框架学习笔记

    LitePal是一款非常好用的数据库开源框架,它采用了对象关系映射(ORM)的模式,使用这个框架从创建数据库到操作数据库都变成极其简单,那么我们就开始学习吧.它的开源地址:https://github ...

  5. Android 第十四课 使用LitePal添加数据(更新数据)

    我们注意到当你登录一个app,是不是需要先注册呢?,所谓注册,简单地来理解是不是就是把输入框中地数据传入数据库中呢? 这里我们设置简单一点,注册的信息只包括两项,一项是用户名,另一项是密码.我们干脆建 ...

  6. Android 第十六课 使用LitePal查询数据

    LitePal在查询API方面做了非常多的优化,基本上可以满足绝大多数场景的查询需求,并且代码也十分整洁. 例如我们需要查询表中的所有数据: List<books> = DataSuppo ...

  7. 使用LitePal操作数据库(CRUD增删改查) 项目已上传GitHub

    GitHub项目地址: https://github.com/Skymqq/LitePalSave.git LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)映射的模式 ...

  8. android mysql代码_LitePal——Android数据库框架完整使用手册(示例代码)

    LitePal for Android LitePal是一个开源的Android库,使开发人员使用SQLite数据库非常简单.您无需编写任何SQL语句就可以完成大部分数据库操作,包括创建或升级表,增. ...

  9. android面试(16)-数据库存储框架greendao

    在进行项目开发时,免不了要实现存储功能,也就是我们常说的数据持久化,我们知道,android五种存储方式,网络存储,数据库存储,文件存储,SharePreference和contentprovider ...

  10. 使用LitePal操作数据库

    配置litepal环境 //1.导入项目依赖 implementation 'org.litepal.android:core:1.4.1'//2.搭建实体类package com.dds.huqin ...

最新文章

  1. 【MATLAB】MATLAB的控制流
  2. 智慧停车产业链市场全透析
  3. htc one m7刷Linux,HTC one m7官方刷机详细操作教程
  4. Servlet 实例
  5. Linux kernel分析前的准备
  6. 4.QPixmap,QTransform,绘图函数的使用
  7. Windows 7 上安装 Mapnik
  8. VS2019 更新MSDN并创建快捷方式
  9. libxml2如何配合php使用,libxml2实现xml文档的节点的修改
  10. 麦咖啡的设置,很长,如果你想百毒不侵的话。。
  11. 猪悟能淘宝商品下载专家v3版开发手记
  12. idea连接linux中mysql[08S01]错误
  13. python生成分形图片_如何用TensorFlow生成令人惊艳的分形图案
  14. commons-lang3 简介、中文文档、中英对照文档 下载
  15. python写百行代码可运行_56 岁潘石屹学俩月 Python ,写下百行代码
  16. iOS textField属性详解
  17. 为何越来越多职场人不喜欢“试用期六个月”的公司?网友:不靠谱
  18. 计算机在工作中的应用,计算机技术在设计工作中的应用
  19. LC串联和并联电路汇总(转)
  20. docker+kubernets-蔡超-专题视频课程

热门文章

  1. RandomForest随机森林模型训练
  2. vs2015+opencv+dilb+于仕琪人类识别算法对人脸特征点进行检测
  3. Android app 跳转微信小程序
  4. 自用plsql破解方法
  5. Perl入门学习(一)运行和基本语法
  6. python获取淘宝服务器的毫秒级时间
  7. ToStringBuilder
  8. 域的基本管理:统一公司部门桌面
  9. Nero刻录软件下载
  10. 刷机工具-fastboot