mybatis 非数据库字段,

  mybatis 非数据库字段,

  00-1010接收数据库中不存在的字段、问题描述和问题解决方案。在数据库中找不到对应字段怎么办?

  

目录

 

  00-1010浏览器页面想通过E-hcart表单展示一些数据。这些数据需要从数据库中计算出来。但不在数据库中。例如,查询一些记录。比如在线、离线、无数据的车辆数量。这些数据都是通过MySql的聚合功能获得的。

  Sql语句如下:

  选择sum(updatetime date_sub(now(),INTERVAL 0.5 DAY))作为联机,sum(updatetime为空)nodata,count(1)-sum(update time date _ sub(now(),INTERVAL 0.5 DAY))-sum(update time为空)作为脱机,count(1)from CX _ onecdata其中kdgs= SF 和cartype LIKE %gps%

  查询结果如上图所示。

  请注意,这些统计字段在数据库中不可用。

  那么问题来了,如何获取这些数据呢?

  00-1010在MyBaits中生成相应的字段。比如我的实体类(也就是DO)里是这样的:

  public class SF car { private Integer online;私有整数nodata私有整数离线;公共整数getOnline(){ return online;} public void setOnline(Integer online){ this . online=online;}公共整数getno data(){ return no data;} public void setno data(Integer no data){ this . no data=no data;}公共整数get offline(){ return offline;} public void setOffline(整数offline){ this . offline=offline;}MyBatis中对应的映射文件是这样配置的:

  !- GPS车辆统计-select ID= FindBysFCArgps 结果映射= BaseResultMap Select Sum(更新时间gt;date_sub(now(),间隔0.5天) )为online,sum(updatetime为NULL) nodata,count(1)-sum(update time gt;Date _ sub (now()、interval 0.5 day))-sum(更新时间为空)作为离线从CX _ one CDATA其中kdgs= SF 和cartype LIKE %gps% /select这里有两点需要注意。是:返回的结果类型是resultMap="BaseResultMap "。第二,MyBatis映射的是实体类,而不是数据库对应的表映射,所以可以直接写想要的Sql。最好使用这个Do来接收所需的数据。

  至此,场不匹配的问题可以完美解决。

  最后页面显示的效果:

  通过数据渲染得到想要的效果。

  注意:以前我在获取数据中对应的字段时,都是使用列表集中的映射集来获取需要的数据。

  用于解码的代码,例如:

  p>

 List<String> legend = new ArrayList<String>(); List<Map> serisData=new ArrayList<Map>(); List<TreeMap<String,Integer>> data = car_Service.selectCarTypeCount(); int count = 0; List<String> car_typename= new ArrayList<String>(); List<String> car_typevalue = new ArrayList<String>(); // Map<String,String> mapdata= new HashMap<>(); // 遍历以Key - Value 形式遍历 for (Map<String, Integer> map : data){ Map tarMap =new HashMap(); for (Map.Entry<String, Integer> k : map.entrySet()){ count++; if (count % 2 == 0) { car_typename.add(k.getValue()+""); }else{ car_typevalue.add(k.getValue()+""); } } for (int i = 0; i < car_typename.size(); i++) { // 获取 List 中的 String 数组元素。 String cartype_name = car_typename.get(i); String cartype_value = car_typevalue.get(i); // mapdata.put(cartype_name, cartype_value); if (i== car_typename.size()-1) { legend.add(cartype_name); tarMap.put("value", cartype_value); tarMap.put("name", cartype_name); serisData.add(tarMap); } } } // 纵坐标 List<SeriesVO> series = new ArrayList<>(); series.add(new SeriesVO("总数比较", "pie",serisData)); EchartDataVO targetdata = new EchartDataVO(legend,null, series); // 获取 目标数据 JSON 格式 return targetdata;

至此问题解决!

 

  

 

  

数据库中找不到相应的字段应该怎么做

 

  

数据库中找不到相应的字段

有的字段是以符号、数字的形式存在,所以直接找不到。

 

  1.首先找到映射表,在隐射表中包含我们想要的字段。

  2.去相应的表中查找映射表中的字段。

  注意1:我们想要的字段可能在映射表中有两个或更多的字段组合而成,所以去需要的表中分别找到这些不同的字段组合。

  注意2:两个或更多的字段可能分别在不同的表中,此时需要联表。

  注意3:–山东xxx和七xxxx河酒店hotelinfo.Product_typ=6,但是hotelinfo.Product_typ=‘11’ AND hotelinfo.Territory_cd='Z’才组合成换成其他系统,

  但是因为Product_typ=6了,不能=11,

  所以Product_typ=6 AND cust_LEVEL="Z"是换成其他系统,

  可以在PMS系统中查到,换成其他系统的表头叫做酒店级别

  所以并不是一对一组合,而是多对多的组合

  

 

  并不是Para_typ=9AND para_CD=5营销部,Para_typ=10/11.。。AND para_CD="5"也营销部

  注意4:Para_typ=9/10/11/…在另一个表中可能是属于不同的字段

  举例如下:

  

 

  完成上级给的任务时先让他看一遍,避免返工浪费时间

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: