編輯:關於android開發
LiteOrm是一個小巧、強大、比系統自帶數據庫操作性能快1倍的 android ORM 框架類庫,開發者一行代碼實現數據庫的增刪改查操作,以及實體關系的持久化和自動映射。
https://github.com/litesuits/android-lite-orm
下載最新的jar 包,然後導入到項目中
一個數據庫對應一個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(); } }); } }
參考
Android ORM框架 LiteOrm使用
Linux內核系列—7.操作系統開發之中斷和異常,linux內核a.概述 中斷門和陷阱門的作用機理幾乎是一樣的,只不過使用調用門時使用call指令,而這裡我們使用int指
違章查詢源碼分享,違章查詢源碼 使用快遞100查詢接口實現 源碼地址:https://github.com/chenjie200280/weizhang 測試
Android包含了常用於嵌入式系統的SQLite,免去了開發者自己移植安裝的功夫。SQLite
linux 內核信號的實現和使用把以前寫的一些東西發一下,和大家一起學習。1, 基本數據結構* linux信號數結構下圖是《深入理解linux內核第3版》“信號”一章的圖
Android中使用ExpandableListView實現微信通訊錄界