zoukankan      html  css  js  c++  java
  • 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(),查询最后一条记录。

  • 相关阅读:
    Topcoder Arena插件配置和训练指南
    [POJ] 3277 .City Horizon(离散+线段树)
    C++ STL算法系列 unique
    C. Polycarpus' Dice
    Codeforces Round #298 (Div. 2) B. Covered Path
    Matlab 2012a 下载和安装教程
    hdu 5203
    ....
    乐观锁vs悲观锁, 集群vs分布式 , 微服务, 幂等性
    正向代理 vs 反向代理
  • 原文地址:https://www.cnblogs.com/mstk/p/5813369.html
Copyright © 2011-2022 走看看