mybatis 返回Integer,Double,String等类型的数据操作

 更新时间:2020年11月25日 11:25:15   作者:朽木要自雕  
这篇文章主要介绍了mybatis 返回Integer,Double,String等类型的数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在使用mybatis的过程中会遇到只返回单独数据类型的问题会用到resultType。

 //返回Integer
 <select id="getSpeedByLinkId" parameterType="java.lang.String" resultType="Integer">
 SELECT speed from dws_tfc_state_speed_link_last_rt where link_id = #{linkId}
 </select>
 //返回Double类型
 <select id="getTravelTimeByLinkId" parameterType="java.lang.String" resultType="Double">
 SELECT travel_time from dws_tfc_state_speed_link_last_rt where link_id = #{linkId}
 </select>
 //返回String 类型
 <select id="getSpeedByLinkId" parameterType="java.lang.String" resultType="String">
 SELECT speed from dws_tfc_state_speed_link_last_rt where link_id = #{linkId}
 </select>

补充知识:mybatis下返回类型为int,结果为null时报tempted to return null from a method with a primitive return type (int).

背景了解:

从mysql数据库中查询数据,用Int接收,因为数据库没有数据所以返回null,于是运行时报以下错误,提取关键的信息“attempted to return null from a method with a primitive return type (int).”,翻译成中文大概意思是“”尝试从具有基本返回类型(Int)的方法返回null“返回int的方法想要返回null,不符合规矩。

报错信息:

xml中的SQL和报错信息如下:

 <select id="getweekalert" resultType="int">
 select SUM(alert_sum) as alert_sum from tb_checkresults 
 </select>

2019-06-27 17:39:40,742 ERROR (DirectJDKLog.java:182)- Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.chinalife.datacheck.dao.CheckresultDao.getyestodayalert attempted to return null from a method with a primitive return type (int).] with root cause org.apache.ibatis.binding.BindingException: Mapper method 'com.chinalife.datacheck.dao.Checkresul*tDao.getyestodayalert attempted to return null *********************省略以下那些没用的*********************

解决办法:

(1)利用mysql的函数ifnull

ifnull函数可以判断返回值是否为‘null',不为null时直接返回,为null时返回我们指定的‘0'

 <select id="getweekalert" resultType="int">
 select IFNULL(SUM(alert_sum),0) as alert_sum from tb_checkresults
 </select>

2) 将返回类型改为Integer

int是基本数据类型,默认值是0:integer是int的封装类,是一个类,默认值是null

<select id="getweeekalert" resultType="Integer">
 select SUM(alert_sum) as alert_sum from tb_checkresults 
</select>

找得到,看得懂,明确报错信息很重要。

解决问题有多种办法,符合要求的才是最好的。

以上这篇mybatis 返回Integer,Double,String等类型的数据操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Java实现文件夹的遍历操作指南

    使用Java实现文件夹的遍历操作指南

    网上大多采用java递归的方式遍历文件夹下的文件,这里我不太喜欢递归的风格,这篇文章主要给大家介绍了关于使用Java实现文件夹的遍历操作的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • IntelliJ Idea SpringBoot 数据库增删改查实例详解

    IntelliJ Idea SpringBoot 数据库增删改查实例详解

    SpringBoot 是 SpringMVC 的升级,对于编码、配置、部署和监控,更加简单。这篇文章主要介绍了IntelliJ Idea SpringBoot 数据库增删改查实例,需要的朋友可以参考下
    2018-02-02
  • JAVA抽象类和抽象方法(abstract)实例分析

    JAVA抽象类和抽象方法(abstract)实例分析

    这篇文章主要介绍了JAVA抽象类和抽象方法(abstract),结合实例形式分析了java抽象类及抽象方法相关定义、使用技巧与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • 关于Elasticsearch封装公共索引增删改查

    关于Elasticsearch封装公共索引增删改查

    索引是Elasticsearch中存储数据的逻辑单元,类似于关系数据库中的表,它包含多个文档,每个文档都是一个结构化的JSON数据格式,在实际应用中,索引的使用与配置可以依据不同的方案进行,例如在Spring Boot项目中,可以选择自动配置或者手动编写配置类
    2024-10-10
  • JavaEE中用response向客户端输出中文数据乱码问题分析

    JavaEE中用response向客户端输出中文数据乱码问题分析

    这篇文章主要介绍了JavaEE中用response向客户端输出中文数据乱码问题分析,需要的朋友可以参考下
    2014-10-10
  • Spring Boot 中的 @Field 注解的原理解析

    Spring Boot 中的 @Field 注解的原理解析

    本文详细介绍了 Spring Boot 中的 @Field 注解的原理和使用方法,通过使用 @Field 注解,我们可以将 HTTP 请求中的参数值自动绑定到 Java 对象的属性上,简化了开发过程,提高了开发效率,感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • java的线程池框架及线程池的原理

    java的线程池框架及线程池的原理

    这篇文章主要介绍了java的线程池框架及线程池的原理的相关资料,需要的朋友可以参考下
    2017-03-03
  • 教你如何使用JAVA POI

    教你如何使用JAVA POI

    今天教大家怎么学习JAVA POI的用法,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • 完美解决单例设计模式中懒汉式线程安全的问题

    完美解决单例设计模式中懒汉式线程安全的问题

    下面小编就为大家带来一篇完美解决单例设计模式中懒汉式线程安全的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • java 实现发短信功能---腾讯云短信

    java 实现发短信功能---腾讯云短信

    如今发短信功能已经成为互联网公司的标配,接下来通过本文给大家介绍java 实现发短信功能---腾讯云短信 ,需要的朋友可以参考下
    2019-08-08

最新评论