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. 深入解析Sqlite的完美替代者,android数据库新王者——Realm

    写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...

  2. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  3. Android 数据库框架OrmLite的使用(一)

    在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...

  4. Android数据库升级

    随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新 ...

  5. 优雅的处理Android数据库升级的问题

    原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest ...

  6. Android数据库之SQLite数据库

    Android数据库之SQLite数据库 导出查看数据库文件 在android中,为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data ...

  7. Android 数据库读取数据显示 [5]

    2016-12-1 课程内容 昨天学了Android数据库升级.降级.创建 今天把数据库表里面的数据读取出来显示到手机屏幕上 下面代码是MainActivity.java 的代码 package co ...

  8. Android数据库信息显示在listview上

    Key Points: 1.使用SimpleCursorAdapter将Android数据库信息显示在listview上 adapter = new SimpleCursorAdapter(this, ...

  9. android数据库持久化框架

    android数据库持久化框架

随机推荐

  1. UWP开发入门(二十三)——WebView

    本篇讨论在UWP开发中使用WebView控件时常见的问题,以及一些小技巧. WebView是实际开发中常用的控件,很多大家抱怨的套网页的应用都是通过WebView来实现的.这里要澄清一个问题,套网页的 ...

  2. 【转】同一台Windows机器中启动多个Memcached服务

    上一篇介绍了Memcached的安装,但是如果手头上只有一台机器,又想做多节点测试咋办? 这就需要在一台机器上启动多个Memcached服务了. 假设Memcached在如下目录:C:\memcach ...

  3. Oracle导入导出命令

    //导出 exp techrpt_data/techrpt_data@orcl file=d:\_临时文件\techrpt_data.dmp owner=techrpt_data //导入 imp t ...

  4. 质数的判断,实现bool IsPrime(int number)

    1.重复输入一个数,判断该数是否是质数,输入q结束?质数的判断用方法来实现bool IsPrime(int number) static void Main(string[] args) { // 要 ...

  5. Ajax实现定时刷新页面

    function deleteValue(){ var refresh = function() { $.ajax({   type:'post',   url:'/Application/index ...

  6. android释放内存的一个办法

    step 1:定义一个监听接口 public static interface OnLowMemoryListener { void onLowMemoryReceived(); } /* 何问起 h ...

  7. 求助,eclipse总是卡在building workspace-CSDN论坛

    1).解决方法 方法1.修改eclipse启动文件 eclipse.ini 中添加启动参数参数: -vmargs -Xmx512m 方法2.关闭自动构建工作区: project -> build ...

  8. [javascript] 对象拷贝

    Object.prototype.clone = function() { var copy = (this instanceof Array) ? [] : {}; for (attr in thi ...

  9. Guava学习笔记:Range

    在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构.从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(C ...

  10. 转【实战体验几种MySQLCluster方案】

    实战体验几种MySQLCluster方案 1.背景 MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案: ...