Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 數據庫 LiteOrm 的使用,androidliteorm

Android 數據庫 LiteOrm 的使用,androidliteorm

編輯:關於android開發

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使用

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved