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
參考
