代码完善(dev): 数据库翻译的多条记录支持取多列

This commit is contained in:
song_jx 2024-02-29 20:27:32 +08:00 committed by 猎隼丶止戈
parent 54ef86967a
commit 87ff4e24fd
5 changed files with 41 additions and 33 deletions

View File

@ -3,7 +3,12 @@ package com.aizuda.trans.demo.impl;
import cn.hutool.core.collection.CollUtil;
import com.aizuda.trans.annotation.Translator;
import com.aizuda.trans.demo.DemoService;
import com.aizuda.trans.entity.*;
import com.aizuda.trans.entity.Device;
import com.aizuda.trans.entity.People;
import com.aizuda.trans.entity.People2;
import com.aizuda.trans.entity.People3;
import com.aizuda.trans.entity.People4;
import com.aizuda.trans.entity.Result;
import org.springframework.stereotype.Component;
import java.util.List;
@ -46,7 +51,8 @@ public class DemoServiceImpl implements DemoService {
public List<People2> dbDemo() {
People2 man = People2.builder().id("1").build();
People2 woman = People2.builder().id("2").build();
return CollUtil.newArrayList(man, woman);
People2 more = People2.builder().id("1,2").build();
return CollUtil.newArrayList(man, woman, more);
}
@Translator

View File

@ -17,11 +17,13 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class People2 {
/** 数据库翻译 */
@Translate(dictClass = UserDB.class, translateField = "name")
@Translate(dictClass = UserDB.class, translateField = {"name", "sex"})
private String id;
private String name;
private String sex;
}

View File

@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
* @author nn200433
* @date 2022-12-16 016 14:07:27
*/
@Dictionary(codeColumn = "id", textColumn = {"user_name"})
@Dictionary(codeColumn = "id", textColumn = {"user_name", "sex"})
@TableName("sys_user")
public class UserDB {
@ -21,5 +21,8 @@ public class UserDB {
@TableField(value = "user_name")
private String name;
@TableField(value = "sex")
private String sex;
}

View File

@ -77,10 +77,11 @@ public class DataBaseTranslator implements Translatable {
// 传入数据1,2,3
// 查询结果["张三","李四","王五"]
// 返回结果张三李四王五
final String field = textColumnArray[0];
where.set(codeColumn, StrUtil.split(origin, StrUtil.COMMA));
List<Entity> entityList = Db.use(dataSource).find(where, EntityListHandler.create(), textColumnArray);
rsList.add(entityList.stream().map(e -> e.getStr(field)).collect(Collectors.joining("")));
for (String column : textColumnArray) {
rsList.add(entityList.stream().map(e -> e.getStr(column)).collect(Collectors.joining("")));
}
} else {
// 单条记录多列查询结果为单条多列循环后为多条根据传入的字段顺序返回
// 传入数据1

View File

@ -1,38 +1,34 @@
/*
Navicat Premium Data Transfer
Source Server : mysql-
Source Server Type : MySQL
Source Server Version : 50739
Source Host : 192.168.0.44:3306
Source Schema : t_test
Target Server Type : MySQL
Target Server Version : 50739
File Encoding : 65001
Date: 18/04/2023 11:36:32
Date: 29/02/2024 20:25:24
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
SET
FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
PRIMARY KEY (`id`) USING BTREE
CREATE TABLE `sys_user`
(
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`sex` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO `sys_user` VALUES ('1', '张三');
INSERT INTO `sys_user` VALUES ('2', '李四');
INSERT INTO `sys_user` VALUES ('3', '王五');
INSERT INTO `sys_user` VALUES ('4', '赵六');
INSERT INTO `sys_user`
VALUES ('1', '张三', '');
INSERT INTO `sys_user`
VALUES ('2', '李四', '');
INSERT INTO `sys_user`
VALUES ('3', '王五', '');
INSERT INTO `sys_user`
VALUES ('4', '赵六', '');
SET FOREIGN_KEY_CHECKS = 1;
SET
FOREIGN_KEY_CHECKS = 1;