Android 数据库 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
参考

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RxJava 和 RxAndroid 三(生命周期控制和内存优化)
rxjava rxandroid 赵彦军 前言:对Rxjava、Rxandroid不了解的同学可以先看看RxJava 和 RxAndroidRxJava 和 RxAndroid 二(操作符的使用) RxJava使我们很方便的使用链式编程,代码看起来既简洁又优雅。但是RxJava使用起来也是有副作用的,使用越来越多的订阅,内存开销也会变得很大,稍不留神就会出现内存溢出的情况,这篇文章就是介绍Rxjava使用过程中应该注意的事项。 1、取消订阅 subscription.unsubscribe() ; package lib.com.myapplication; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import rx.Observable; import rx.Subscription; import rx.functions.Action1; public class MainActivity extends AppCompatActivity { Subscription ...
- 下一篇
Android 监听锁屏、解锁、开屏 操作
1、首先定义ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.PowerManager; /** * Created by ${zyj} on 2016/6/21. */ public class ScreenListener { private Context mContext; private ScreenBroadcastReceiver mScreenReceiver; private ScreenStateListener mScreenStateListener; public ScreenListener(Context context) { mContext = context; mScreenReceiver = new Scree...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址