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 数据库 LiteOrm 的使用的更多相关文章
- 深入解析Sqlite的完美替代者,android数据库新王者——Realm
写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- Android 数据库框架OrmLite的使用(一)
在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...
- Android数据库升级
随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新 ...
- 优雅的处理Android数据库升级的问题
原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest ...
- Android数据库之SQLite数据库
Android数据库之SQLite数据库 导出查看数据库文件 在android中,为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data ...
- Android 数据库读取数据显示 [5]
2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package co ...
- Android数据库信息显示在listview上
Key Points: 1.使用SimpleCursorAdapter将Android数据库信息显示在listview上 adapter = new SimpleCursorAdapter(this, ...
- android数据库持久化框架
android数据库持久化框架
随机推荐
- js基础篇——cookie使用要点
1.Cookie数量和长度的限制.各个浏览器的限制不同IE7+和Firefox最大限制为50条,chrome和Safari无限制,IE6-最大限制20条.且所有浏览器限制每个cookie长度不能超过4 ...
- SQL Server 2014里的针对基数估计的新设计(New Design for Cardinality Estimation)
对于SQL Server数据库来说,性能一直是一个绕不开的话题.而当我们去分析和研究性能问题时,执行计划又是一个我们一直关注的重点之一. 我们知道,在进行编译时,SQL Server会根据当前的数据库 ...
- Excel文件相关:XLS格式文件基本操作
序 1.添加引用 添加引用->Com->Microsoft Excel 9.0 Object Library(对应Excel2000) *Microsoft Excel 11.0 Obje ...
- nodejs中exports与module.exports的实践
只要是在nodejs中写自己的文件模块就少不了会遇到module.exports和exports的使用,看别人的代码大多都会使用“module.exports=exports=<对象/函数等&g ...
- js jquery 异常
1.0 TypeError: $(...).carousel is not a function原因:可能是没有引用或者引用了多个jquery:<script src="~/js/jq ...
- DevExpress的XtraReport和微软RDLC报表的使用和对比
我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...
- 理解Ruby中的作用域
作用域对于Ruby以及其它编程语言都是一个需要理解的至关重要的基础知识.在我刚开始学习ruby的时候遇到很多诸如变量未定义.变量没有正确赋值之类的问题,归根结底是因为自己对于ruby作用域的了解不够, ...
- Jetty 的工作原理以及与 Tomcat 的比较
Jetty 的基本架构 Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所 ...
- 性能测试学习之二 ——性能测试模型(PV计算模型)
PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量 =2*(总PV)/* (24*60*60) /服务器数量 通过定积 ...
- Guacamole之实现和架构(一)
摘要 在网上看到一篇Guacamole官方手册的翻译,但是找不到后续,于是想自己也翻译几篇,有时间的话,会尽量多翻译一些.第一篇就直接转载过来了. Guacamole的介绍以及架构 Guacamole ...