LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。

学习了郭霖大神的第一行代码第二版

1、配置LitePal

在build.gradle文件中添加

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

在main目录下添加assets目录,在其目录中添加litepal.xml文件

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

在AndroidManifest.xml中配置LitePalApplication

<applicationandroid:name="org.litepal.LitePalApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher" .../>

2、创建和升级数据库(以面向对象的思维)Book类--> book表

package com.example.litepaltest;import org.litepal.crud.DataSupport;public class Book extends DataSupport {private int id;private String author;private double price;private int pages;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getPages() {return pages;}public void setPages(int pages) {this.pages = pages;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

在litepal.xml中添加映射

<litepal><dbname value="BookStore" ></dbname><version value="1"></version><list><mapping class="com.example.litepaltest.Book"></mapping></list>
</litepal>

布局文件layout_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/create_database"android:text="Create Database"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/add_data"android:text="Add Data"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/update_data"android:text="Update Data"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/delete_data"android:text="Delete Data"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/query_data"android:text="Query Data"/>
</LinearLayout>

主MainActivity中

Button createDatabase = (Button) findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Connector.getDatabase();   //创建数据库}
});

可以通过Adb shell及sqlite3相关命令查看表是否创建成功

升级数据库,将litepal.xml中version值加1即可

如:Book中添加出版社press字段

package com.example.litepaltest;import org.litepal.crud.DataSupport;public class Book extends DataSupport {......private String press;public String getPress() {return press;}public void setPress(String press) {this.press = press;}
}

或者添加新表Category

package com.example.litepaltest;public class Category {private int id;private String categoryName;private int categoryCode;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCategoryName() {return categoryName;}public void setCategoryName(String categoryName) {this.categoryName = categoryName;}public int getCategoryCode() {return categoryCode;}public void setCategoryCode(int categoryCode) {this.categoryCode = categoryCode;}
}

修改litepal.xml文件

<litepal><dbname value="BookStore" ></dbname><version value="2"></version><list><mapping class="com.example.litepaltest.Book"></mapping><mapping class="com.example.litepaltest.Category"></mapping></list>
</litepal>

重新运行程序即可

3、添加数据  Book类继承DataSupport

Button addData = (Button) findViewById(R.id.add_data);
addData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book = new Book();book.setId(1);book.setAuthor("ZhuZiqing");book.setName("Blackground");book.setPages(15);book.setPrice(10.55);book.setPress("RenMingPress");book.save();}
});

查表后,可看到数据已经添加

4、更新数据

Button updateData = (Button) findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Book book = new Book();book.setId(2);book.setAuthor("ShenCongwen");book.setName("BianCheng");book.setPages(300);book.setPrice(15.55);book.setPress("RenMingPress");book.save();book.setPrice(16.66);book.save();//第二种更新方法Book book1 = new Book();book1.setPrice(17.00);book1.setPress("ZhongNanWenYi");book1.updateAll("name = ? and author = ?",  "BianCheng", "ShenCongwen");}
});

5、删除数据

Button deleteData = (Button) findViewById(R.id.delete_data);
deleteData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {DataSupport.deleteAll(Book.class, "price > ?", "15");}
});

6、查询数据

Button queryData = (Button) findViewById(R.id.query_data);
queryData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {List<Book> list = DataSupport.findAll(Book.class);for(Book book:list){Log.d("MainActivity","The Book id"+book.getId());Log.d("MainActivity","The Book author"+book.getAuthor());Log.d("MainActivity","The Book price"+book.getPrice());Log.d("MainActivity","The Book press"+book.getPress());}}
});

Android学习--LitePal使用相关推荐

  1. Android学习——LitePal源码分析

    原创技术博客,请认准Azzssss的原文http://www.cnblogs.com/Azzssss/p/4147704.html. 这两天项目终于上线了,松了一口气,虽然还是很不稳定,见一步走一步吧 ...

  2. Android学习--持久化(三) SQLite LitePal

    SQLite & LitePal 自己做为一个iOS开发,看到安卓这一块的时候,那中浓烈的熟悉味道更加强烈,SQLite这种轻量级的关系型数据库的使用在移动端相差不多,iOS有FMDB,And ...

  3. Android 学习指南(2017版)

    Android 学习指南 不断有新人来询问如何学习Android,很多都是无从下手,没有任何概念.正好好久没写文章了,今天来整理一下Android学习大纲,同时也会附上部分学习资料,主要还是希望大家能 ...

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

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

  5. Android 学习记录(持续更新)

    Android 学习记录(持续更新) 1.AndroidManifest.xml 详解: http://www.jb51.net/article/73731.htm (AndroidManifest. ...

  6. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  7. Android学习路线

    Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承 ...

  8. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  9. Android学习系列(10)--App列表之拖拽ListView(上)

    研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨.       鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...

最新文章

  1. 【Groovy】字符串 ( 字符串注入函数 | asBoolean | execute | minus )
  2. java websocket 库_Java 项目中的 WebSocket 实现
  3. Java 构造方法中super()的作用以及使用
  4. Python编程核心内容 ---- Function(函数)
  5. oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)...
  6. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
  7. Matplotlib 绘图秘籍
  8. 屏蔽tomcat服务器报错信息,tomcat 屏蔽网络爬虫
  9. 3 css 奖品出现弹出动画_10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!...
  10. Java基础编程题——水仙花数
  11. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
  12. 新版个人信息安全规范正式发布:收集生物识别信息前需告知
  13. 土豆网总裁回忆与乔布斯的会面
  14. socket的基本使用
  15. 【机器学习基础】样本类别不平衡的解决办法
  16. Linux: systemd 启动代码分析
  17. 网易云课堂个性化推荐实践与思考
  18. PSGAN——姿态稳健型可感知空间式生成对抗网络论文详细解读与整理
  19. MySQL 1414错误
  20. 直流无刷电机发热问题及解决方案

热门文章

  1. R3LIVE代码详解(四)
  2. 【技术分享】数据之道 笃行拓新
  3. 记录python下载的第三方安装包
  4. 环洋市场调研-2021年全球颜料红48:3行业调研及趋势分析报告
  5. 电缆总管 Cable master(挑战程序设计竞赛)
  6. 异世界美食家html,异世界的美食家步方-异世界的美食家全文免费阅读
  7. 基本矩阵、本质矩阵和单应矩阵
  8. 简单项目-图书借阅系统
  9. c语言图书馆管理程的运行截图,c语言图书管理系统
  10. 服务器IPMI(BMC)装机