栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis根据对应view来动态设置查询列

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis根据对应view来动态设置查询列

背景

在进行根据模型开发的过程中,模型是需要最精简的。各个模型物料表的列都不一样,如何在模型开发中设置一个精简模型来进行配置,查询出对应的模型数据呢?
在上一篇中Mybatis无实体类查询中已经简单实现了mybatis的非预编译查询,那么如何实现对应的动态查询列呢?

实现

根据设置对应的视图view,来配置要显示或者查找的动态列名,当然这个列名肯定是在表中存在的。

演示

设置视图编号和名称,分录为要显示的列名,一定要和物理表相对应,这里后面可以通过Model的描述文件设置成过滤条件来选择

查询结果

修改视图显示分录,只显示名称

查询结果展示

可以看到不用改动代码,只要修改对应的视图,就可以展示返回的结果信息,这样扩展性就很高了。

源码
 baseObject baseObject=new baseObject();
        baseObject.setTableName("user");
        baseObject.setColsValue("name","张三");

        ViewCol viewCol=new ViewCol();

        //根据视图code来查找对应的视图
        baseObject userViewObeject=new baseObject();
        userViewObeject.setTableName("viewlist");
        userViewObeject.setColsValue("viewcode","userview");

        ViewCol userViewCol=new ViewCol();
        userViewCol.SetCol("id");
        userViewCol.SetCol("viewcode");
        userViewCol.SetCol("viewname");

        List> userViewMap = baseObjectService.querySelect(userViewObeject.getTableName(), userViewObeject.GetColsValue(), userViewCol.GetColView());
        if(userViewMap!=null && userViewMap.size()>0){
            //根据视图编号查找对应的视图对象列名
            String mainId = userViewMap.get(0).get("id").toString();
            baseObject userViewColObject=new baseObject();
            userViewColObject.setTableName("viewcol");
            userViewColObject.setColsValue("main_id",mainId);
            ViewCol userViewColNew=new ViewCol();
            userViewColNew.SetCol("colname");

            List> userViewColMap = baseObjectService.querySelect(userViewColObject.getTableName(), userViewColObject.GetColsValue(), userViewColNew.GetColView());

            if(userViewColMap!=null && userViewColMap.size()>0){
                for(HashMap m : userViewColMap){
                    for(Object o: m.keySet())
                    {
                        viewCol.SetCol(m.get(o).toString());
                    }
                }
            }
        }

        return baseObjectService.querySelect(baseObject.getTableName(),baseObject.GetColsValue(),viewCol.GetColView());

    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/532056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号