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();
}
});
}
}
|