mybatis 如何通过resultMap 返回long

mybatis resultMap 返回long

<resultMap id="ResultOfLong" type="java.lang.Long">
        <result column="budget" property="budget" javaType="long"/>
    </resultMap> 

mybatis long 类型返回为null报异常

Mapper method 'com.mpn.dao.TWeatherMapper.avgWeatherTemperature attempted to return null from a method with a primitive return type (long).

<select id="avgWeatherTemperature" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT IFNULL(AVG(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

   <select id="sumWeatherRainfall" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT SUM(WeatherTemperature) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

   <select id="avghumidity" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT IFNULL(AVG(WeatherHumidity),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

由于返回为空long中没有此类型所以抛异常,改为

<!-- 根据日期来进行计算平局值与 -->
   <select id="avgWeatherTemperature" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT IFNULL(AVG(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

   <select id="sumWeatherRainfall" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT IFNULL(SUM(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

   <select id="avghumidity" resultType="java.lang.Long" parameterType="java.lang.String" >
        SELECT IFNULL(AVG(WeatherHumidity),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
  </select>

用IFNULL来进行判断!

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

(0)

相关推荐

  • Mybatis中强大的resultMap功能介绍

    前言 在Mybatis中,有一个强大的功能元素resultMap.当我们希望将JDBC ResultSets中的数据,转化为合理的Java对象时,你就能感受到它的非凡之处.正如其官方所述的那样: resultMap元素是 MyBatis 中最重要最强大的元素.它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作.实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的长

  • mybatis多层嵌套resultMap及返回自定义参数详解

    1.两层嵌套,一个list中加另外一个list data:[ {a:123,b:456,c:[{d:7,e:8}]} ] xml文件定义的sql select * from zhy z LEFT JOIN wl w on z.id = w.zid resultMap可以定义: <resultMap id="zhyResultMap" type="zhy的doman实体" extends="zhy自动生成的BaseResultMap">

  • mybatis中resultMap 标签的使用教程

    MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jdbc繁杂的过程代码. MyBatis特点: 1.开源的优秀持久层框架 2.SQL语句与代码分离 3.面向配置的编程 4.良好支持复杂数据映射 5.动态SQL resultMap 标签: 用来描述如何从数据库结果集中来加载对象 (敲黑板!!)主管数据库的字段和实体类属性的匹配,

  • Mybatis中resultMap的使用总结

    Mybatis的介绍以及使用:http://www.mybatis.org/mybatis-3/zh/index.html resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中. resultMap包含的元素: <!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性--> <resultMap id="唯一的标识" type="映射的pojo对象&

  • mybatis 如何通过resultMap 返回long

    mybatis resultMap 返回long <resultMap id="ResultOfLong" type="java.lang.Long"> <result column="budget" property="budget" javaType="long"/> </resultMap> mybatis long 类型返回为null报异常 Mapper meth

  • 详解MyBatis resultType与resultMap中的几种返回类型

    目录 一.返回集合 1.返回JavaBean集合 2.返回 Map 集合 二.返回 Map 1.一条记录 2.多条记录,需要指定 Map 的 Key 和 Value 的类型 三.返回 resultMap 自定义结果集封装 1.自定义 JavaBean 的封装 2.关联查询的封装,一对一,JavaBean 属性包含 JavaBean 3.关联查询的封装,一对多,JavaBean 属性包含 JavaBean 的集合 4.鉴别器discriminator 一.返回集合 1.返回JavaBean集合 p

  • Mybatis的resultMap返回map问题

    目录 resultMap返回map问题 简单封装resultMap返回对象为map resultMap返回map问题 <resultMap type="Map" id="bankMaintainMap"> <result column="bank_name" property="bankName"/> <result column="maintain_time_interval"

  • MyBatis中的resultMap简要概述

    Mybatis简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. Mybatis的功能架构分为三层(图片借用了百度百科): 1)       API接口层:提供给外部使用的接口API,开发人员通过这些本地API

  • mybatis中实现让返回值与bean中字段相匹配

    1. 编写目的 这个介绍的与那些修改mybatis.xml文件的方法不一样,目的也不一样. 当我们需要查询的数据跟entity的bean完全不匹配的时候(比如说需要统计的时候),我们不可能写多个dao层的查询接口,然后一个一个map到xml中去. 我们可以专门写一个类,根据自己的需要把统计的属性都写到里面去,然后一次性查询,就可以获得所有需要统计的数据. 2. 重要方法 专门编写一个实体类.实体类中包含的都是自己需要统计的属性. 编写dao层的接口方法的返回值就是这个实体类. 在映射的map.x

  • mybatis调用sqlserver存储过程返回结果集的方法

    第一种:返回值通过out输出 sqlserver存储 testMapper.xml 两种都能接收到数据的, 因为我的实体类字段与数据库的不一致,上面图片是按照数据库字段定义的,下图是按照实体类定义的,接收输出参数是按照你定义的名称返回 serviceImpl Map<String,String> objectsMap = new HashMap<>(); objectsMap.put("sno","123"); objectsMap.put(

  • Mybatis 复杂对象resultMap的使用

    目录 Mybatis 复杂对象resultMap 下面是resultMap的定义 普通属性省略说明 select相关配置 Model代码 resultMap处理复杂映射问题 Ⅰ 多对一查询:学生--老师 (1) 创建实体类POJO (2) 创建学生实体类对应的接口 (3) 编写学生接口对应的Mapper.xml (4)在核心配置类中引入Mapper Ⅱ 一对多查询:老师--学生 (1)实体类 (2) 接口 (3)接口对应的Mapper.xml (4)测试: Mybatis 复杂对象resultM

  • mybatis调用mysql存储过程(返回参数,单结果集,多结果集)

    目录 一.接收一个返回值 注意事项: 存储过程主要分成三类: 二.接收list结果集 三.返回多个结果集 四.第二种配置也可以 一.接收一个返回值 使用Map接收返回参数,output参数放在传入的param中 创建表 DROP TABLE IF EXISTS `demo`; CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`

  • mybatis深入讲解resultMap的定义及用法

    目录 我们知道 ,mybatis框架存在pojo对象映射 , 直接将查询到的结果封装到对象中给我们返回, 但如果数据库的中的列和java中类属性名就是不一致,或者如果我们实际返回的对象需要去关联其他的对象(也就是说,其他类的对象作为我们这个类的成员变量),那么这时候使用resultType肯定是不行的 这里我们则需要去定义 resultMap来完成我们的需求 定义resultMap的过程就是描述如何从数据库结果集中去加载对象 resultMap多用于多表查询间的映射关系, 例如 : 我们以部门和

随机推荐