文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

运用Mybatis动态查询字段及表名

2023-09-06 07:25

关注

Mapper.java

IPage> getDyData(@Param("page") Page page, @Param("columns")String columns, @Param("tableName")String tableName);

Mapper.xml

select      ${columns}from     ${tableName}  dy

使用场景:

我们必须知道查询的表名,可以通过表名查询字段及注释,然后把表名和字段传进mapper

如果知道具体查询哪些表,可以把这些表及表对应的字段配置进一张表和字段对应的表中,通过表名查询该表取出对应的字段及注释,此处的字段注释可以自己写相对比较灵活。

DROP TABLE IF EXISTS `table_colume_mapping`;CREATE TABLE `table_colume_mapping`  (  `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名',  `column_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段名',  `column_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段汉语名',  `table_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名注释',  `sort` int(10) NULL DEFAULT NULL COMMENT '字段排序',  `show_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '是' COMMENT '是否展示在列',  `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '0存在1删除') ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表字段注释映射' ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;
调用
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();wrapper.eq(TableColumeMapping::getTableName, "查询的表名");List list = SpringContextHolder.getBean(TableColumeMapping.class).list(wrapper);Map tableColumeMap = list.stream().collect(Collectors.toMap(TableColumMapperPerson::getColumnName, account -> account));String columnNames = list.stream().map(item -> "dy."+item.getColumnName()).collect(Collectors.joining(","));IPage> result = this.baseMapper.getDyData(page,columnNames,"查询的表名");

来源地址:https://blog.csdn.net/qq_37931185/article/details/130066498

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯