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

Android 数据库 LiteOrm 的使用相关推荐

  1. Android 数据库对比

    Android 数据库对比 转载于:https://blog.csdn.net/u010134293/article/details/58590092 一.常见数据库介绍 GreenDao 是为And ...

  2. 转载-Android数据库高手秘籍(一)——SQLite命令

     原文地址: http://blog.csdn.net/guolin_blog/article/details/38461239 Android数据库高手秘籍(一)--SQLite命令 分类: And ...

  3. Android源码开发笔记 -- Android数据库,屏幕休眠时间

    1. Android数据库问题(以下描述引用及参考http://blog.csdn.net/yin1031468524/article/details/71512996) 在Android7.0之后, ...

  4. Android数据库专家秘籍(七)经验LitePal查询艺术

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40153833 经过了多篇文章的学习,我们已经把LitePal中的绝大部分内容都掌握 ...

  5. Android数据库高手秘籍(三)——使用LitePal升级表

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39151617 在上一篇文章中,我们学习了LitePal的基本使用方法,体验了使用框 ...

  6. Android 数据库基本操作-2

    这个例子实现了一个完整的数据库操作示例.首先运行项目,初始化数据库(创建数据库.创建表):然后点击左方向键向表中插入一条数据,按右方向键删除一条数据,按数字键1修改表中指定的一条数据,数字键2可以删除 ...

  7. Android 数据库框架ormlite 使用精要

    Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机 ...

  8. Android数据库LitePal的存储操作

    本文属于转载,在此声明,出处:http://blog.csdn.net/guolin_blog/article/details/38556989 并且感谢guolin分享了这么精彩的博文.以下正文: ...

  9. Android数据库高手秘籍(二):创建表和LitePal的基本用法

    原文:http://blog.jobbole.com/77157/ 上一篇文章中我们学习了一些Android数据库相关的基础知识,和几个颇为有用的SQLite命令,都是直接在命令行操作的.但是我们都知 ...

最新文章

  1. 数据库 Linux下的MySQL数据库管理
  2. Sring类型数组赋值
  3. SparkStreaming - 自定义数据源(自定义采集器)
  4. 火狐浏览器添加MetaMask钱包和本地开启私有链开发
  5. 【图说Word】怎么在word的每一行前面和后面加上同一个字或字符?
  6. c++ protected_java基础之——访问修饰符(private/default/protected/public)
  7. zabbix agent启动不了
  8. 循环移动(cyclic)
  9. VisualSVN Server提交整个工程项目
  10. openssl genrsa
  11. 网络协议梳理(四)(socket、想要实现高并发,可以通过以下四种方式)
  12. 如何快速成为一个运维工程师
  13. 从另外一个角度来学习大数据入门教学
  14. Wox+Everything结合使用
  15. 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
  16. 用antd实现番茄钟
  17. Thinking_2_酸甜苦辣咸的2016
  18. 线上java程序CPU占用过高问题排查
  19. msm8974 camera reset pin时序问题汇总
  20. SqlServer2012卸载并重新安装成功完整过程!真的超级激动...

热门文章

  1. html5 json转字符串,web前端-js小记(5)-字符串及json
  2. java mesos kubernete_Fabric8操作Kubernetes(一)
  3. 文件流导出乱码_Savespss:不使用StatTransfer也可转换dta为sav文件的利器
  4. 计算机一级access考试题库,‎App Store 上的“计算机二级access-全国计算机等级考试题库”...
  5. 十九、 彻底掌握金融量化交易库Talib
  6. CMU预训练模型最新综述:自然语言处理新范式—预训练、Prompt和预测
  7. 基于图卷积(GCN)和规则卷积(CNN)的情绪识别
  8. 综述:基于GAN的图像翻译模型盘点
  9. HDU1250 Hat's Fibonacci 大数斐波那契数列
  10. python如何绘制曲线图_python怎么画曲线图