你的位置:首页 > 操作系统

[操作系统]Android 数据库 LiteOrm 的使用


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