广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis接收数据库中没有的字段的解决
  • 123
分享到

MyBatis接收数据库中没有的字段的解决

2024-04-02 19:04:59 123人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录接收数据库中没有的字段问题描述问题的解决方法数据库中找不到相应的字段应该怎么做数据库中找不到相应的字段接收数据库中没有的字段 问题描述 浏览器页面想要通过E-hcart表格,展示

接收数据库中没有的字段

问题描述

浏览器页面想要通过E-hcart表格,展示一些数据。这些数据需要从数据库中计算而来。但是在数据库中没有的字段。比如说要查询某些记录。如车辆的在线数量,离线数量和无数据的数量。这些数据是通过Mysql的聚合函数得到的。

sql语句如下:

SELECT
    sum(
        updatetime > date_sub(now(), INTERVAL 0.5 DAY)
    ) AS online,
    sum(updatetime IS NULL) nodata,
    count(1) - sum(
        updatetime > date_sub(now(), INTERVAL 0.5 DAY)
    ) - sum(updatetime IS NULL) AS offline
,COUNT(1)
FROM
    cx_onecdata
WHERE
    kdgs = '顺丰'
AND cartype LIKE '%gps%'

查询的结果如上图。

注意,这些统计的字段都是数据库中没有的。

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

问题的解决方法

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

public class Sfcar {
    private Integer online;
    private Integer nodata;
    private Integer offline;
    public Integer getOnline() {
        return online;
    }
    public void setOnline(Integer online) {
        this.online = online;
    }
    public Integer getNodata() {
        return nodata;
    }
    public void setNodata(Integer nodata) {
        this.nodata = nodata;
    }
    public Integer getOffline() {
        return offline;
    }
    public void setOffline(Integer offline) {
        this.offline = offline;
    }

mybatis中对应的映射文件是这样配置的:

    <!--  GPS 车辆统计  -->
  <select id="findbySFCarGPS" resultMap="BaseResultMap">
    SELECT
        sum(
            updatetime &gt; date_sub(now(), INTERVAL 0.5 DAY)
        ) AS online,
            sum(updatetime IS NULL) nodata,
            count(1) - sum(
                updatetime &gt; date_sub(now(), INTERVAL 0.5 DAY)
            ) - sum(updatetime IS NULL) AS offline
        FROM
            cx_onecdata
        WHERE
            kdgs = '顺丰'
        AND cartype LIKE '%gps%'
  </select>

这里有两个注意的点。一是:返回结果类型是resultMap=”BaseResultMap”。二,MyBatis是跟实体类映射,而不是跟数据库对应的表映射,所以可以直接写想要的Sql。最好用这个Do 来接收想要的数据。

至此,可以完美解决字段不对应的问题。

最后页面显示的效果:

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

说明一下:以前数据中获取不对应的字段时,我是用List集合里面放Map集合,获取所要的数据。

用来解码的代码如:

        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/…在另一个表中可能是属于不同的字段

举例如下:

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: MyBatis接收数据库中没有的字段的解决

本文链接: https://www.lsjlt.com/news/142020.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis接收数据库中没有的字段的解决
    目录接收数据库中没有的字段问题描述问题的解决方法数据库中找不到相应的字段应该怎么做数据库中找不到相应的字段接收数据库中没有的字段 问题描述 浏览器页面想要通过E-hcart表格,展示...
    99+
    2022-11-13
  • MyBatis-plus数据库字段排序不准确的解决
    目录MyBatis-plus数据库字段排序不准确例如:12还没有8,4,2大,这就很郁闷了解决方案Mybatis-plus遇到的坑1. 数据库映射枚举2. 自增主键3. mybati...
    99+
    2022-11-13
  • 如何解决mybatis-plus实体类中字段和数据库中字段名不对应
    这篇文章主要介绍“如何解决mybatis-plus实体类中字段和数据库中字段名不对应”,在日常操作中,相信很多人在如何解决mybatis-plus实体类中字段和数据库中字段名不对应问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-07
  • Mybatis中ResultMap解决属性名和数据库字段名不一致问题
    目录前言1. 字段名不一致解决方法:第一种方式: 起别名第二种方式: 结果集映射 resultMap2. 多对一处理3. 一对多处理小结前言 我们Pojo类的属性名和数据库中的字段名...
    99+
    2022-11-12
  • 如何解决mybatis-plus实体类中出现非数据库映射字段的问题
    本篇内容主要讲解“如何解决mybatis-plus实体类中出现非数据库映射字段”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决mybatis-plus实体类中出现非数据库映射字段”吧!在使...
    99+
    2023-06-07
  • 远程连接mysql数据库没有权限的解决方法
    这篇文章主要介绍远程连接mysql数据库没有权限的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!远程连接mysql数据库没有权限的解决办法:首先在mysql的bin目录下执行...
    99+
    2022-10-18
  • mybatisplus 实体类的字段名与数据库的字段名不一致的解决办法
    我们在查询数据库时经常会碰到数据库的字段名与实体类的字段名不一致的情况,例如报如下的错误 使用mybatisplus可以使用以下几种方式进行字段名的匹配: 把实体类的字段名改成和数据库的字段...
    99+
    2023-09-27
    数据库 sql mysql spring boot mybatis Powered by 金山文档
  • mybatis返回map类型数据空值字段不显示的解决方案
    目录mybatis返回map数据空值字段不显示查询sql添加每个字段的判断空ResultType利用实体返回springMVC+mybatis查询数据mybatis返回map空值未返...
    99+
    2022-11-13
  • Mybatis中怎么使用ResultMap解决属性名和数据库字段名不一致问题
    本篇内容介绍了“Mybatis中怎么使用ResultMap解决属性名和数据库字段名不一致问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前...
    99+
    2023-06-25
  • 怎么解决数据库LOB字段带来的性能影响
    这篇文章主要讲解了“怎么解决数据库LOB字段带来的性能影响”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决数据库LOB字段带来的性能影响”吧!今天开发...
    99+
    2022-10-18
  • PHP中字段数据超过4113字符后的数据异常问题解决
        环境信息: 操作系统:LNMP1.6 PHP 版本:5.3.29(NTS) 达梦客户端版本:DM_V7.6.0.161客户端 PHP 模块:libphp53_dm.so...
    99+
    2022-10-18
  • 怎么解决数据库中没有索引导致的DIRECT PATH READ
    本篇内容主要讲解“怎么解决数据库中没有索引导致的DIRECT PATH READ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决数据库中没有索引导致的DI...
    99+
    2022-10-18
  • 数据库中删除表字段的sql语句有哪些
    小编给大家分享一下数据库中删除表字段的sql语句有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!删除表字段的sql语句有哪些...
    99+
    2022-10-18
  • mysql 数据库 tinyint 类型字段取数变成 true/false 的解决方案
    mysql 数据库 tinyint 类型字段取数变成 true/false 的解决方案 灌水 问题描述: 在 mysql 数据库设定上,有个字段类型是 tinyint 类型,长度为 1, 设定如下所示: 常规 sql 取数, 取到润乾报...
    99+
    2023-10-01
    数据库 mysql java
  • 解决引用slf4j中Logger.info只打印出文字没有数据的问题
    目录slf4j Logger.info只打印出文字没有数据解决方案启用设置org.slf4j.Logger打印并输出日志pom.xml配置logback.xml配置程序调用slf4j...
    99+
    2022-11-12
  • 数据库中删除表中字段的sql语句有哪些
    这篇文章主要介绍数据库中删除表中字段的sql语句有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!删除表中字段的sql语句有:1、删除没有默认值的列【alter table Tes...
    99+
    2022-10-18
  • mysql查找所有数据库中没有主键的表问题怎么解决
    今天小编给大家分享一下mysql查找所有数据库中没有主键的表问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。查找所...
    99+
    2023-07-05
  • MySQL数据库主从没有同步的两种解决方案
    下文主要给大家带来MySQL数据库主从没有同步的两种解决方案,希望这些内容能够带给大家实际用处,这也是我编辑这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。方法一:忽略错误,继续同步该方法适用于主从...
    99+
    2022-10-18
  • 解决MySQL主从数据库没有同步的两种方法
    目录解决MySQL主从数据库没有同步的两种方法一、不同步情况二、解决方案 1.先进入主库,进行锁表,防止数据写入2.进行数据备份3.查看master 状态4.把mysql备份文件传到...
    99+
    2022-11-12
  • 数据库中大表删除字段慢的原因有哪些
    小编给大家分享一下数据库中大表删除字段慢的原因有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于生产环境,用的是DG架构,因此在数据库同事的协助下,利用DG备库snapshot的功能...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作