在进行根据模型开发的过程中,模型是需要最精简的。各个模型物料表的列都不一样,如何在模型开发中设置一个精简模型来进行配置,查询出对应的模型数据呢?
在上一篇中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



