Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
普蓝开源社区
盘古开发框架
提交
dbb6b537
盘古开发框架
项目概览
普蓝开源社区
/
盘古开发框架
通知
25
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
盘古开发框架
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dbb6b537
编写于
9月 11, 2022
作者:
X
xiongchun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码优化
上级
99c591fa
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
38 addition
and
34 deletion
+38
-34
pangu-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz
...-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz
+0
-0
pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties
...-system-app/src/main/resources/application-dev.properties
+2
-2
pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java
...va/com/pulanit/pangu/admin/web/system/RoleController.java
+0
-1
pangu-website/docs/advanced-guide/数据持久化.md
pangu-website/docs/advanced-guide/数据持久化.md
+36
-31
未找到文件。
pangu-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz
0 → 100644
浏览文件 @
dbb6b537
文件已添加
pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties
浏览文件 @
dbb6b537
...
...
@@ -39,5 +39,5 @@ pangu.jdbc.db-type=mysql
logging.file.name
=
logs/pangu.log
logging.level.root
=
INFO
logging.level.com.gitee.pulanos.pangu
=
info
logging.level.com.pulanit.pangu.admin.system.dao
=
debug
\ No newline at end of file
logging.level.com.gitee.pulanos.pangu
=
INFO
logging.level.com.pulanit.pangu.admin.system.dao
=
DEBUG
\ No newline at end of file
pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java
浏览文件 @
dbb6b537
...
...
@@ -32,7 +32,6 @@ public class RoleController {
*/
@GetMapping
(
"/list"
)
public
Result
<
PageResult
<
RoleEntity
>>
list
(
RoleIn
roleIn
)
{
Console
.
log
(
roleIn
);
PageResult
<
RoleEntity
>
pageResult
=
roleService
.
list
(
roleIn
);
return
Result
.
success
(
pageResult
);
}
...
...
pangu-website/docs/advanced-guide/数据持久化.md
浏览文件 @
dbb6b537
...
...
@@ -204,6 +204,30 @@ public void aPageQuery(){
#### 基于手工映射 SQL 的分页查询
继续阅读本文后面的
[
《手工编写SQL映射》
](
#手工编写sql映射
)
章节可以找到。
#### 一个完整的分页查询例子
```
jsx
// 分页入参对象
public
class
RoleIn
extends
Page
{
private
String
name
;
}
// Controller
@
GetMapping
(
"
/list
"
)
public
Result
<
PageResult
<
RoleEntity
>>
list
(
RoleIn
roleIn
)
{
PageResult
<
RoleEntity
>
pageResult
=
roleService
.
list
(
roleIn
);
return
Result
.
success
(
pageResult
);
}
// Service实现
public
PageResult
<
RoleEntity
>
list
(
RoleIn
roleIn
)
{
Page
<
RoleEntity
>
page
=
PagingUtil
.
createPage
(
roleIn
);
LambdaQueryWrapper
<
RoleEntity
>
lambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
lambdaQueryWrapper
.
like
(
ObjectUtil
.
isNotEmpty
(
roleIn
.
getName
()),
RoleEntity
::
getName
,
roleIn
.
getName
());
roleMapper
.
selectPage
(
page
,
lambdaQueryWrapper
);
return
PagingUtil
.
getPageResult
(
page
);
}
```
### 手工编写SQL映射
:::tip
一般来说在日常开发中我们是不需要再编写SQL代码的,Mapper API已经能满足我们的需求了。但对于一些特殊需求,我们也可以手工写SQL映射的方式来处理。如下范例演示了手工SQL查询的操作,新增、修改、删除也是同理。
...
...
@@ -245,27 +269,10 @@ public void bSelect() {
@Mapper
public interface CrudMapper {
/**
* 分页查询
* @param page 分页查询对象
* @param param
* @return
*/
List<UserEntity> listUsersByPage(Page<UserEntity> page, Map<String, Object> param);
/**
* 分页查询
* @param page 分页查询对象
* @param userType
* @return
*/
List<Map<String, Object>> listUserMapsByPage(Page<Map<String, Object>> page, String userType);
/**
* 普通集合查询
* @param param
* @return
*/
List<UserEntity> listUsersByMap(Map<String, Object> param);
}
...
...
@@ -311,22 +318,20 @@ public interface CrudMapper {
### 事务
单一数据源事务,直接使用 Spring 事务相关注解即可(
`@EnableTransactionManagement`
、
`@Transactional`
)。对于分布式事务请参阅
[
《分布式事务》
](
/docs/advanced-guide/distributed-transaction
)
章节。
### 字段值自动填充
Coming soon...
### 逻辑删除
Coming soon...
## 启动入口
```
jsx {5}
@EnableTransactionManagement
@SpringBootApplication
public class CrudApplication {
public static void main(String[] args) {
PanGuApplicationBuilder.init(CrudApplication.class).run(args);
}
}
盘古框架借助 Mybatis Plus 对逻辑删除提供了非常友好的支持。通过如下简单配置即可实现从物理删除到逻辑删除在 CRUD 上面的无感体验。
```
jsx
#
指定逻辑删除的标识字段
mybatis
-
plus
.
global
-
config
.
db
-
config
.
logic
-
delete
-
field
=
deleted
#
删除前的缺省值
mybatis
-
plus
.
global
-
config
.
db
-
config
.
logic
-
not
-
delete
-
value
=
0
#
删除后的值
mybatis
-
plus
.
global
-
config
.
db
-
config
.
logic
-
delete
-
value
=
id
```
#### 配置说明
-
逻辑删除字段 deleted 建议通过数据库设置默认值 0。
-
删除后的值建议不用 1,这会带来某字段需要唯一索引时的尴尬问题。因此建议将删除后的值更新为当前记录的 ID 字段值,如上配置所示。这时如果表中某字段需要建立唯一索引,则可以和 deleted 字段一起创建联合唯一索引。
-
查询和更新操作,框架会自动拼接逻辑删除字段作为条件。(AND deleted = 0)
## 本文相关范例源码
-
[
pangu-examples-crud
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-crud
)
:数据持久化参考范例
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录