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  工具类

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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() ;
     }
 
}
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值