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语句查询。
时间: 2024-10-07 05:55:25