Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)
Mapper.java
IPage<Map<String, Object>> getDyData(@Param("page") Page page, @Param("columns")String columns, @Param("tableName")String tableName);Mapper.xml
<select id="getDyData" resultType="java.util.Map">
select
${columns}
from
${tableName} dy
</select>使用場景:
1.我們必須知道查詢的表名,可以通過表名查詢字段及注釋,然后把表名和字段傳進(jìn)mapper
2.如果知道具體查詢哪些表,可以把這些表及表對(duì)應(yīng)的字段配置進(jìn)一張表和字段對(duì)應(yīng)的表中,通過表名查詢?cè)摫砣〕鰧?duì)應(yīng)的字段及注釋,此處的字段注釋可以自己寫相對(duì)比較靈活。
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;
調(diào)用
LambdaQueryWrapper<TableColumeMapping> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TableColumeMapping::getTableName, "查詢的表名");
List<TableColumeMapping> list = SpringContextHolder.getBean(TableColumeMapping.class).list(wrapper);
Map<String, TableColumeMapping> tableColumeMap = list.stream().collect(Collectors.toMap(TableColumMapperPerson::getColumnName, account -> account));
String columnNames = list.stream().map(item -> "dy."+item.getColumnName()).collect(Collectors.joining(","));
IPage<Map<String, Object>> result = this.baseMapper.getDyData(page,columnNames,"查詢的表名");到此這篇關(guān)于Mybatis動(dòng)態(tài)查詢字段及表名的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mybatis動(dòng)態(tài)查詢字段及表名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis動(dòng)態(tài)調(diào)用表名和字段名的解決方法
- mybatis plus 的動(dòng)態(tài)表名的配置詳解
- MyBatis攔截器動(dòng)態(tài)替換表名的方法詳解
- mybatis-plus動(dòng)態(tài)表名實(shí)現(xiàn)方法
- MyBatis-Plus中如何實(shí)現(xiàn)動(dòng)態(tài)表名
- MyBatis-Plus動(dòng)態(tài)表名的使用
- mybatis-plus動(dòng)態(tài)表名的實(shí)現(xiàn)示例
- Mybatis-Plus動(dòng)態(tài)表名的實(shí)現(xiàn)示例
- Mybatis-Plus?動(dòng)態(tài)表名的實(shí)踐
- MyBatis-Plus 動(dòng)態(tài)表名的正確使用方式
相關(guān)文章
Java基于ArrayList實(shí)現(xiàn)群主發(fā)紅包功能
這篇文章主要介紹了Java基于ArrayList實(shí)現(xiàn)群主發(fā)紅包功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java基于迭代器模式實(shí)現(xiàn)的訪問人員列表操作示例
這篇文章主要介紹了Java基于迭代器模式實(shí)現(xiàn)的訪問人員列表操作,簡單描述了迭代器模式的概念、原理以及使用迭代器模式實(shí)現(xiàn)訪問人員列表的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
解決springboot responseentity<string>亂碼問題
這篇文章主要介紹了解決springboot responseentity<string>亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java語言ReadWriteLock特性實(shí)例測試
這篇文章主要介紹了Java語言ReadWriteLock特性實(shí)例測試,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
淺析如何在IDEA中高效使用Test注解進(jìn)行單元測試
在軟件開發(fā)過程中,單元測試是保證代碼質(zhì)量的重要手段之一,那么如何在IDEA中高效使用Test注解進(jìn)行單元測試呢,下面小編就來和大家簡單講講2025-04-04
IDEA代碼規(guī)范&質(zhì)量檢查的實(shí)現(xiàn)
這篇文章主要介紹了IDEA代碼規(guī)范&質(zhì)量檢查的實(shí)現(xiàn),文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

