Android ORM -- Litepal(1)
ORM,即Object Relation Mapping,对象关系映射,实现了程序里面的类和数据库里面的数据之间的对应关系,对数据库的操作可以通过对类的操作去实现,不用再写SQL语句,从而提高了开发效率,节省了开发时间。
在Java Web开发中,有很多的ORM框架,如Hibernate等。在Android开发中,也有一些ORM框架,实现了对SQLite数据库的操作。比如说Litepal、GreenDAO、OrmLite等。本文重点介绍Litepal。
1. 映射文件和实体类
下载Litpal的Jar文件,并复制到libs文件夹下面。在assets文件夹下面新建一个litepal.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="easydb" />
<version value="1" />
<list>
<mapping class="com.example.hzhi.fragmentdemo.Myclass" />
</list>
</litepal>
其中Myclass是实体类:
package com.example.hzhi.fragmentdemo; import org.litepal.crud.DataSupport; /**
* Created by Administrator on 2016/8/27.
*/
public class Myclass extends DataSupport { private Integer Id;
private String Name;
private String Teacher;
private Integer Studytime;
private String Picture; public Myclass() {
} public Myclass(Integer id, String name, Integer studytime, String teacher, String picture) {
Id = id;
Name = name;
Studytime = studytime;
Teacher = teacher;
Picture = picture;
} public Integer getId() {
return Id;
} public void setId(Integer id) {
Id = id;
} public String getName() {
return Name;
} public void setName(String name) {
Name = name;
} public String getTeacher() {
return Teacher;
} public void setTeacher(String teacher) {
Teacher = teacher;
} public Integer getStudytime() {
return Studytime;
} public void setStudytime(Integer studytime) {
Studytime = studytime;
} public String getPicture() {
return Picture;
} public void setPicture(String picture) {
Picture = picture;
} }
这样就设置了数据库的表和实体类的对应关系,当进行数据库操作时,如果数据库还没有这张表,就会新建一张表,表的名称和实体类的名称相同,表的字段就是实体类的属性。
在AndroidManifest.xml文件中的application节点加上配置:
android:name="org.litepal.LitePalApplication"
2. 插入数据
代码很简单:
mc = new Myclass();
mc.setId(0);
mc.setName("计算机网络");
mc.setTeacher("张三");
mc.setStudytime(120);
mc.save();
是不是几乎和Hibernate的插入数据一模一样?省去了写SQL语句的麻烦!
3. 查询数据
public static List<Myclass> listClass;
listClass = DataSupport.findAll(Myclass.class);
以上语句是查询出所有的记录。还有其他一些方法:
(1)DataSupport.findAll(Myclass.class, 1, 3, 5),查询ID为1、3、5的数据;
(2)DataSupport.select().where().order().find(Myclass.class),指明了要查询的字段以及查询条件;
(3)Cursor cursor = DataSupport.findBySQL(),按照SQL语句查询;
(4)DataSupport.findFirst(),查询第一条记录;
(5)DataSupport.findLast(),查询最后一条记录。
Android ORM -- Litepal(1)的更多相关文章
- Android ORM -- Litepal(2)
4. 更新数据 ContentValues value = new ContentValues(); value.put("name", "计算机网络2"); ...
- 最好的5个Android ORM框架
在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...
- Android ORM应用开发框架KJFrameForAndroid使用详解
本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary. KJFrameForAndroid简介 KJFrameForAndro ...
- 推荐的Android ORM框架
1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...
- 简单实用的Android ORM框架TigerDB
TigerDB是一个简单的Android ORM框架,它能让你一句话实现数据库的增删改查,同时支持实体对象的持久化和自动映射,同时你也不必关心表结构的变化,因为它会自动检测新增字段来更新你的表结构. ...
- 最受欢迎的5个Android ORM框架
在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择). 对于第一种方式, ...
- Android ORM SQL Top 5
If you are developing an Android application, you will likely need to store data somewhere. You may ...
- Android ORM——初识greenDAO 3及使用greenDAO 3前应该掌握的一些知识点(一)
引言 总所周知,SQLite--内嵌于Android中一个占用内存极小的关系型,作为我们Android存储领域中重要的一员 ,或多或少都曾接触到数据库.即使Android系统中提供了很多操作SQLit ...
- Android ORM 框架之 greenDAO 使用心得
前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM ...
随机推荐
- 免费道路 bzoj 3624
免费道路(1s 128MB)roads [输入样例] 5 7 21 3 04 5 13 2 05 3 14 3 01 2 14 2 1 [输出样例] 3 2 04 3 05 3 11 2 1 题解: ...
- 【开发软件】 在Mac下配置php开发环境:Apache+php+MySql
本文地址 原文地址 本文提纲: 1. 启动Apache 2. 运行PHP 3. 配置Mysql 4. 使用PHPMyAdmin 5. 附录 有问题请先 看最后的附录 摘要: 系统OS X ...
- javaScript生成二维码(支持中文,生成logo)
资料搜索 选择star最多的两个 第一个就是用的比较多的jquery.qrcode.js(但不支持中文,不能带logo)啦,第二个支持ie6+,支持中文,根据第二个源代码,使得,jquery.qrco ...
- Linux监控工具介绍系列——OSWatcher Black Box
OSWatcher Balck Box简介 OSWatcher Black Box (oswbb)是Oracle开发.提供的一个小巧,但是实用.强大的系统工具,它可以用来抓取操作系统的性能指标,用 ...
- github中的watch、star、fork的作用
[转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...
- Linux系统中用DNW向ARM开发板下载程序
在Linux下通过dnw来给开发板发送程序.包括驱动程序代码:secbulk.c,应用程序代码:dnw.c.只能运行在32位系统上,在64位系统上提示错误:DNW download Data size ...
- Xamarin.Android-用ZXing实现二维码扫描以及连续扫描
一.前言 本文的内容有两个基础:ZXing.Net和ZXing.Net.Mobile ZXing.Net:ZXing的C#实现,主要封装了各种二维码的编码.解码等跨平台的算法 ZXing.Net.Mo ...
- 我所理解的SOA和微服务
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...
- mysql 列名中 包含斜杠或者空格的处理方式
今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下. 问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作. 问题解答 对于这种特 ...
- WCF中,通过C#代码或App.config配置文件创建ServiceHost类
C# static void Main(string[] args) { //创建宿主的基地址 Uri baseAddress = new Uri("http://localhost:808 ...