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

首先加入依赖包

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

创建litepal.xml配置文件,在app/src/main目录下创建assets文件夹,在该文件夹中创建litepal.xml文件,如果创建错地方会报错:dbname is empty or not defined in litepal.xml file, or your litepal.xml file is missing.

创建后的文件

并输入以下数据库信息

<?xml version="1.0" encoding="UTF-8" ?>
<litepal><!--数据库的名字--><dbname value="School"></dbname><!--数据库的版本好--><version value="1"></version><!--表--><list><mapping class="com.example.dell.testlitepal.Student"></mapping></list>
</litepal>

在AndroidManifest.xml配置文件中的application中加入android:name="org.litepal.LitePalApplication",如果没有配置也会报错:dbname is empty or not defined in litepal.xml file, or your litepal.xml file is missing.

创建数据表对应的JavaBean,让它继承DataSupport,LitePal会根据这个类生成数据表

import org.litepal.crud.DataSupport;public class Student extends DataSupport {private int id;private String number;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "学生{" +"id=" + id +", 学会='" + number + '\'' +", 姓名='" + name + '\'' +", 年龄=" + age +'}';}
}

根据上面的配置生成数据表的SQL语句,可以看到id是关键字,且自增长

CREATE TABLE student (id integer primary key autoincrement,age integer, name text, number text);

生成的表

接下来就是各个操作了

插入

Student student = new Student();
student.setNumber("1238409");
student.setName("小明");
student.setAge(21);
//必须使用save()才生效
student.save();

连续插入三条数据,打印结果

更新

Student student1 = new Student();
//设置要更新的数据
student1.setAge(0);
student1.setName("111111");
//声明要设置的值是跟默认值冲突的列
student1.setToDefault("age");
//执行更新和说明条件
student1.updateAll("name = ?", "小明");

注意:当数据设置成跟默认值相同时是不会被更新的,比如int类型设置为0,boolean类型设置为false,Sting类型设置为null,这都不会更新的,因为系统认为这个是默认值,不是用户设置的,会忽略更新,要使用setToDefault()方法声明这列要更新。

更新后的结果

删除

//表对应的类、条件、条件值
DataSupport.deleteAll(Student.class, "id > ?", "2");

删除id>2的数据

查询全部

//只需要传入表对应的JavaBean类,返回是集合
List<Student> students = DataSupport.findAll(Student.class);

查询的结果

按条件查询

//在find加上where,写入条件
List<Student> students1 = DataSupport.where("age = ?", "21").find(Student.class);

查询的结果

SQL语句查询

List<Student> students2 = new ArrayList<>();
//同普通的SQL操作差不多
Cursor cursor = DataSupport.findBySQL("select * from student where age = ? and id> ?", "21", "3");
if (cursor != null) {while (cursor.moveToNext()) {Student stu = new Student();stu.setId(cursor.getInt(cursor.getColumnIndex("id")));stu.setNumber(cursor.getString(cursor.getColumnIndex("number")));stu.setName(cursor.getString(cursor.getColumnIndex("name")));stu.setAge(cursor.getInt(cursor.getColumnIndex("age")));students2.add(stu);}cursor.close();
}

查询结果

 其他查询条件

//获取第一条数据
Student firstStu = DataSupport.findFirst(Student.class);
//获取最后一条数据
Student lastStu = DataSupport.findLast(Student.class);
//要查询某几列
List<Student> someLineStu = DataSupport.select("number", "name").find(Student.class);
//排序查询,("列名 规则") desc降序 asc升序
List<Student> orderStu = DataSupport.order("age desc").find(Student.class);
//只查前5条
List<Student> limitStu = DataSupport.limit(5).find(Student.class);
//查询结果的偏移量,跟limit搭配可以做分页使用,下面是从第3条开始,共查询5条
List<Student> offsetStu = DataSupport.limit(5).offset(2).find(Student.class);
//多种条件组合查询
List<Student> setStu = DataSupport.select("number", "name").where("id > ?", "3").order("age desc").limit(5).offset(4).find(Student.class);

项目源代码:http://download.csdn.net/download/qq_33200967/9929315 

转载于:https://www.cnblogs.com/yeyupiaoling/p/7308461.html

Android的LitePal开源数据库框架学习笔记相关推荐

  1. Android客户端开发—开源数据库框架LitePal

    LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,不使用SQL语句就可以完成创建表以及表单的CRUD操作,并且很轻量级,几乎零配置.(它将 ...

  2. Spring框架学习笔记,超详细!!(4)

    Java小白开始学习Spring框架,一方面,跟着视频学习,并记录下学习笔记,方便以后复习回顾.另一方面,发布学习笔记来约束自己,学习路程还很遥远,继续加油坚持!!!希望能帮助到大家! 另外还有我的牛 ...

  3. 【Android】在Android上使用OrmLite数据库框架 之 基本用法

    转载自:http://blog.csdn.net/oo8_8oo/article/details/7302156 官网:http://ormlite.com/ 官方帮助,目录: http://orml ...

  4. 27Vert.X框架学习笔记

    vert.x框架学习笔记 文章目录 1 Vert.x简明介绍 1.1 Vert.x能干什么 1.2 Vert.x快速体验 1.3 Vert.x的简单介绍 1.4 Vert.x的一些优势 1.4.1 异 ...

  5. SpringMVC框架--学习笔记(上)

    1.SpringMVC入门程序: (1)导入jar包:spring核心jar包.spring-webmvc整合Jar包 (2)配置前端控制器:web.xml文件中 <?xml version=& ...

  6. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

  7. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

  8. php框架费尔康,GitHub - majixian/study-phalcon: phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 以实例程序invo为例(invo程序放在网站根目录下的invo文件夹里,推荐php版本>=5.4) 环境不支持伪静态网址时的配置 第一步: 在app\con ...

  9. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

最新文章

  1. 从零开始,教你征战Kaggle竞赛
  2. 百度java验证码不显示不出来,Java-使用百度链接时,遇到无法弹出用户登录框的问题...
  3. php作业案例10,5月23日作业——实例演示查询构造器中的10个最常用的方法
  4. studioone精调效果包_cnocr: 极简的中文OCR Python包
  5. 20155327第三周学习总结
  6. 计算机学3d建模吗,计算机三维建模与动画基础
  7. torch将多个tensor张量合并为一个张量,只提高迷你批次的纬度
  8. sprintf 、vsprintf 、_vsntprintf
  9. 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy...
  10. 老版本iOS simulator链接
  11. Cisco路由器配置dhcp服务器
  12. 谷歌浏览器清除百度广告
  13. 学习CPP看过的博客
  14. 吴军三部曲见识(三) 谈谈见识
  15. 结婚时贴红“囍”字的来历
  16. d3.js画柱状图超详细教程
  17. 展锐平台PIN码输错三次后提醒PUK输入
  18. sql求中位数、四分位数
  19. Windows下NTFS连接点管理工具-junction工具说明
  20. StableLM(stablelm-tuned-alpha-7b)中文能力测试

热门文章

  1. Android 性能优化案例
  2. 【JAVASCRIPT】如何不使用jquery函数和ajax框架实现ajax效果
  3. ajaxpro定时刷新页面
  4. LeetCode 5366. 检查网格中是否存在有效路径
  5. win7_64 安装 caffe
  6. Python实现用户登录
  7. MySQL之创建表以及数据库增删改操作
  8. java学习之基本类型
  9. 实战篇—关于某产品的切分细则
  10. Hadoop 的核心(1)—— HDFS