Android ORM,androidorm

來源:互聯網
上載者:User

Android ORM,androidorm

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(),查詢最後一條記錄。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.