首页 > 代码库 > Android ORM -- Litepal(1)

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;    }}

这样就设置了数据库的表和实体类的对应关系,当进行数据库操作时,如果数据库还没有这张表,就会新建一张表,表的名称和实体类的名称相同,表的字段就是实体类的属性。

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),表明查询第1、3、5条数据;

(2)DataSupport.select().where().order().find(Myclass.class),指明了要查询的字段以及查询条件;

(3)Cursor cursor = DataSupport.findBySQL(),按照SQL语句查询。

 

Android ORM -- Litepal(1)