Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zhaoyufei133
litepal
提交
e3c00364
L
litepal
项目概览
zhaoyufei133
/
litepal
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
litepal
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e3c00364
编写于
5月 25, 2020
作者:
G
guolindev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add API support for transaction.
上级
44e25031
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
64 addition
and
2 deletion
+64
-2
core/src/main/java/org/litepal/LitePal.kt
core/src/main/java/org/litepal/LitePal.kt
+20
-0
core/src/main/java/org/litepal/Operator.java
core/src/main/java/org/litepal/Operator.java
+34
-2
core/src/main/java/org/litepal/crud/LitePalSupport.java
core/src/main/java/org/litepal/crud/LitePalSupport.java
+10
-0
未找到文件。
core/src/main/java/org/litepal/LitePal.kt
浏览文件 @
e3c00364
...
...
@@ -54,6 +54,26 @@ object LitePal {
@JvmStatic
fun
getDatabase
():
SQLiteDatabase
=
Operator
.
getDatabase
()
/**
* Begins a transaction in EXCLUSIVE mode.
*/
@JvmStatic
fun
beginTransaction
()
=
Operator
.
beginTransaction
()
/**
* End a transaction.
*/
@JvmStatic
fun
endTransaction
()
=
Operator
.
endTransaction
()
/**
* Marks the current transaction as successful. Do not do any more database work between calling this and calling endTransaction.
* Do as little non-database work as possible in that situation too.
* If any errors are encountered between this and endTransaction the transaction will still be committed.
*/
@JvmStatic
fun
setTransactionSuccessful
()
=
Operator
.
setTransactionSuccessful
()
/**
* Switch the using database to the one specified by parameter.
* @param litePalDB
...
...
core/src/main/java/org/litepal/Operator.java
浏览文件 @
e3c00364
...
...
@@ -95,6 +95,29 @@ public class Operator {
return
Connector
.
getDatabase
();
}
/**
* Begins a transaction in EXCLUSIVE mode.
*/
public
static
void
beginTransaction
()
{
getDatabase
().
beginTransaction
();
}
/**
* End a transaction.
*/
public
static
void
endTransaction
()
{
getDatabase
().
endTransaction
();
}
/**
* Marks the current transaction as successful. Do not do any more database work between calling this and calling endTransaction.
* Do as little non-database work as possible in that situation too.
* If any errors are encountered between this and endTransaction the transaction will still be committed.
*/
public
static
void
setTransactionSuccessful
()
{
getDatabase
().
setTransactionSuccessful
();
}
/**
* Switch the using database to the one specified by parameter.
* @param litePalDB
...
...
@@ -1191,8 +1214,17 @@ public class Operator {
*/
public
static
int
deleteAll
(
Class
<?>
modelClass
,
String
...
conditions
)
{
synchronized
(
LitePalSupport
.
class
)
{
DeleteHandler
deleteHandler
=
new
DeleteHandler
(
Connector
.
getDatabase
());
return
deleteHandler
.
onDeleteAll
(
modelClass
,
conditions
);
int
rowsAffected
;
SQLiteDatabase
db
=
Connector
.
getDatabase
();
db
.
beginTransaction
();
try
{
DeleteHandler
deleteHandler
=
new
DeleteHandler
(
db
);
rowsAffected
=
deleteHandler
.
onDeleteAll
(
modelClass
,
conditions
);
db
.
setTransactionSuccessful
();
return
rowsAffected
;
}
finally
{
db
.
endTransaction
();
}
}
}
...
...
core/src/main/java/org/litepal/crud/LitePalSupport.java
浏览文件 @
e3c00364
...
...
@@ -203,13 +203,18 @@ public class LitePalSupport {
*/
public
int
update
(
long
id
)
{
synchronized
(
LitePalSupport
.
class
)
{
SQLiteDatabase
db
=
Connector
.
getDatabase
();
db
.
beginTransaction
();
try
{
UpdateHandler
updateHandler
=
new
UpdateHandler
(
Connector
.
getDatabase
());
int
rowsAffected
=
updateHandler
.
onUpdate
(
this
,
id
);
getFieldsToSetToDefault
().
clear
();
db
.
setTransactionSuccessful
();
return
rowsAffected
;
}
catch
(
Exception
e
)
{
throw
new
LitePalSupportException
(
e
.
getMessage
(),
e
);
}
finally
{
db
.
endTransaction
();
}
}
}
...
...
@@ -272,13 +277,18 @@ public class LitePalSupport {
*/
public
int
updateAll
(
String
...
conditions
)
{
synchronized
(
LitePalSupport
.
class
)
{
SQLiteDatabase
db
=
Connector
.
getDatabase
();
db
.
beginTransaction
();
try
{
UpdateHandler
updateHandler
=
new
UpdateHandler
(
Connector
.
getDatabase
());
int
rowsAffected
=
updateHandler
.
onUpdateAll
(
this
,
conditions
);
getFieldsToSetToDefault
().
clear
();
db
.
setTransactionSuccessful
();
return
rowsAffected
;
}
catch
(
Exception
e
)
{
throw
new
LitePalSupportException
(
e
.
getMessage
(),
e
);
}
finally
{
db
.
endTransaction
();
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录