当前位置:网站首页>【code】偶尔取值、判空、查表、验证等
【code】偶尔取值、判空、查表、验证等
2022-07-03 06:30:00 【掘金者说】
想了想还是记录一下,后续不断补充,方便后续查阅
获取List<String>
// 获取表IDs去重
List<String> tIds = list.stream()
.map(TableColumn::getTableParentId)
.distinct()
.collect(Collectors.toList());
// 获取表IDs
List<String> tIds = tables.stream()
.map(Table::getId)
.collect(Collectors.toList());
// 使用List<Map> 大小写注意
List<String> ids = params.stream()
.map(e -> e.get("id"))
.collect(Collectors.toList());
// 获取Parameter.getCheckFormat
List<CheckFormat> checkFormat = Optional.ofNullable(parameter)
.map(u -> u.getCheckFormat())
.orElse(new ArrayList<>());
// 获取最大
FieldConfig maxFieldConfig = configs.stream()
.max(Comparator.comparing(FieldConfig::getOrderId))
.orElse(null);
判断参数
// 判断:类型
if (type == null || !Arrays.asList("40", "60", "80").contains(type)) {
String msg = "选择参数类型 40.库 60.表 80.字段";
return TableUtil.getInstance().errorReturn(code, msg, msg);
}
// 判断:使用List<Map>,if(list != null && list.size() > 0) ===》》 CollectionUtils.isNotEmpty(list);
if (CollectionUtils.isEmpty(ruleList)) {
String msg = "未找到到规则";
return apiErrorReturn(500, msg, msg);
}
表查询
// 修改
LambdaUpdateWrapper<Dir> dirUpdate = Wrappers.lambdaUpdate();
dirUpdate.set(Dir::getName, source.getCnName());
dirUpdate.eq(Dir::getType, 13);
dirUpdate.eq(Dir::getCode, source.getCode());
directoryMapper.update(new SsDir(), dirUpdate);
// 查询
List<Integer> ids = params.stream().map(QuotaBO::getId).collect(Collectors.toList());
LambdaQueryWrapper<QuotaBO> queryQuota = Wrappers.lambdaQuery();
queryQuota.eq(QuotaBO::getIsDelete, 0);
queryQuota.in(QuotaBO::getId, ids);
List<QuotaBO> quotaList = quotaMapper.getList(queryQuota);
// 查询
QueryWrapper qw = new QueryWrapper<>();
qw.eq("COLUMN_NAME", columnName);
List<ColumnBO> list = colService.getListByPage(qw, pIndex, pSize);
// 修改
UpdateWrapper<ColumnBO> uw = new UpdateWrapper<>();
uw.eq("ID", column.getId());
List<ColumnBO> list = colService.getListByPage(column, uw);
数据去重
// 使用id去重处理
bloodList = bloodList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(()
-> new TreeSet<>(Comparator.comparing(BloodBO::getId))), ArrayList::new));
验证是否存在
有数据时候就不要重复添加数据,在验证该数据是否已存在时候,需要考虑新增、修改(修改时候需要忽略本身已存在条件)
select count(1) as valid, concat('分类编号【' ,#{itemId}, '】已存在') as message from pig_item
where IS_DELETE = 0
and ITEM_ID = #{itemId}
and (ID != #{idOld} or #{idOld} is null)
<select id="checkVerifyItemNum" resultType="java.lang.Integer">
<![CDATA[ select count(1) as valid from pig_item where IS_DELETE=0 and ITEM_ID = #{itemId} ]]>
<if test="id != null">
<![CDATA[ and (ID != #{id} or #{id} is null) ]]>
</if>
</select>
<![CDATA[ 内容 ]]>这个写法好处就是大于小于就不要转义,不方便的是判断条件时候就要分开写
多表查询
多张表查询,left join下去,数据是有了,当数据量多了以后,查询性能降低.
with tmp_tab as (
select 先查询数据
),
tmp_desc as (
select 再查询数据
) select * from tmp_desc
边栏推荐
- [system design] proximity service
- 23 design models
- 有意思的鼠标指针交互探究
- Cesium Click to obtain the longitude and latitude elevation coordinates (3D coordinates) of the model surface
- Scripy learning
- Kubesphere - build Nacos cluster
- Interface test weather API
- Selenium - by changing the window size, the width, height and length of different models will be different
- Example of joint use of ros+pytoch (semantic segmentation)
- Print time Hahahahahaha
猜你喜欢

JMeter linked database

Cesium Click to obtain the longitude and latitude elevation coordinates (3D coordinates) of the model surface

“我为开源打榜狂”第一周榜单公布,160位开发者上榜

Kubesphere - build MySQL master-slave replication structure

Selenium - by changing the window size, the width, height and length of different models will be different

2022 CISP-PTE(三)命令执行

Creating postgre enterprise database by ArcGIS
![[open source project recommendation colugomum] this group of undergraduates open source retail industry solutions based on the domestic deep learning framework paddlepadddle](/img/f8/0e3fbfd13bf06291a73200552ff17a.png)
[open source project recommendation colugomum] this group of undergraduates open source retail industry solutions based on the domestic deep learning framework paddlepadddle

Selenium ide installation recording and local project maintenance

Local rviz call and display of remote rostopic
随机推荐
Heap sort and priority queue
Some thoughts on machine learning
YOLOV3学习笔记
[untitled] 8 simplified address book
Mysql
Request weather interface format, automation
After the Chrome browser is updated, lodop printing cannot be called
Local rviz call and display of remote rostopic
Exportation et importation de tables de bibliothèque avec binaires MySQL
Kubesphere - build Nacos cluster
Pdf files can only print out the first page
第8章、MapReduce 生产经验
Oracle database synonym creation
Docker advanced learning (container data volume, MySQL installation, dockerfile)
PMP notes
How matlab modifies default settings
Mysql database table export and import with binary
Fluentd facile à utiliser avec le marché des plug - ins rainbond pour une collecte de journaux plus rapide
【LeetCode】Day93-两个数组的交集 II
SQL实现将多行记录合并成一行