Android 資料庫 LiteOrm 的使用,androidliteorm

來源:互聯網
上載者:User

Android 資料庫 LiteOrm 的使用,androidliteorm
1、什麼是 LiteOrm

      LiteOrm是一個小巧、強大、比系統內建資料庫操作效能快1倍的 android ORM 架構類庫,開發人員一行代碼實現資料庫的增刪改查操作,以及實體關聯的持久化和自動對應。

 

2、github地址

      https://github.com/litesuits/android-lite-orm

 

3、使用

     下載最新的jar 包,然後匯入到項目中

 

4、建立 orm 執行個體

    一個資料庫對應一個LiteOrm的執行個體,如果一個App只有一個資料庫,那麼LiteOrm應該是全域單例的。 如果多次建立LiteOrm執行個體,系統會提示你應該關閉之前的資料庫,也可能會引起其他未知錯誤。

   保持單例:

static LiteOrm liteOrm;if (liteOrm == null) {    liteOrm = LiteOrm.newSingleInstance(this, "liteorm.db");}liteOrm.setDebugged(true); // open the log

 

 為了在項目中使用方便,我們建立了一個 DatabaseManager  工具類

 

package com.app.liteorm;import com.litesuits.orm.LiteOrm;import com.litesuits.orm.db.assit.QueryBuilder;import java.util.List;/** * Created by ${zyj} on 2016/7/4. */public class DatabaseManager {    private static LiteOrm liteOrm;    private static DatabaseManager ourInstance = new DatabaseManager();    private DatabaseManager() {        liteOrm = LiteOrm.newCascadeInstance( MyAppLication.getContext() , "wifi.db" ) ;    }    public static DatabaseManager getInstance() {        return ourInstance;    }    /**     * 插入一條記錄     * @param t     */    public <T> long insert(T t) {        return liteOrm.save(t);    }    /**     * 插入所有記錄     * @param list     */    public <T> void insertAll(List<T> list) {        liteOrm.save(list);    }    /**     * 查詢所有     * @param cla     * @return     */    public <T> List<T> getQueryAll(Class<T> cla) {        return liteOrm.query(cla);    }    /**     * 查詢  某欄位 等於 Value的值     * @param cla     * @param field     * @param value     * @return     */    public <T> List<T> getQueryByWhere(Class<T> cla, String field, String[] value) {        return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));    }    /**     * 查詢  某欄位 等於 Value的值  可以指定從1-20,就是分頁     * @param cla     * @param field     * @param value     * @param start     * @param length     * @return     */    public <T> List<T> getQueryByWhereLength(Class<T> cla, String field, String[] value, int start, int length) {        return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value).limit(start, length));    }    /**     * 刪除一個資料     * @param t     * @param <T>     */    public <T> void delete( T t){        liteOrm.delete( t ) ;    }    /**     * 刪除一個表     * @param cla     * @param <T>     */    public <T> void delete( Class<T> cla ){        liteOrm.delete( cla ) ;    }    /**     * 刪除集合中的資料     * @param list     * @param <T>     */    public <T> void deleteList( List<T> list ){        liteOrm.delete( list ) ;    }    /**     * 刪除資料庫     */    public void deleteDatabase(){        liteOrm.deleteDatabase() ;    }}
使用
package com.app.liteorm;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TestModel testModel = new TestModel() ;        testModel.setId( 1001 ) ;        testModel.setName( "jack" ) ;        testModel.setPassword( "123456" ) ;        testModel.setLogin( true );        TestModel testMode2 = new TestModel() ;        testMode2.setId( 1002 ) ;        testMode2.setName( "jack2" ) ;        testMode2.setPassword( "123456" ) ;        testMode2.setLogin( false );        final List<TestModel> list = new ArrayList<>() ;        list.add( testModel ) ;        list.add( testMode2 ) ;        //插入一條資料        DatabaseManager.getInstance().insert( testModel ) ;        //插入一個集合        DatabaseManager.getInstance().insertAll( list ) ;        //查詢所有        List<TestModel> queryList = DatabaseManager.getInstance().getQueryAll( TestModel.class ) ;        //刪除一個資料        findViewById( R.id.delete_object ).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseManager.getInstance().delete( testModel );            }        });        //刪除一個集合        findViewById( R.id.delete_database ).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseManager.getInstance().deleteList( list );            }        });        //刪除一個表        findViewById( R.id.delete_table ).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseManager.getInstance().delete( TestModel.class );            }        });        //刪除整個資料庫        findViewById( R.id.delete_database ).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                DatabaseManager.getInstance().deleteDatabase();            }        });    }}

  

5、相關代碼已上傳至 github   

 

參考

Android ORM架構 LiteOrm使用

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.