mybatis中Error attempting to get column ‘xx‘ from result set 问题解决

2023-05-16

场景描述

在使用ssm框架写项目的时候,在构建mybatis中发现报错;

报错内容(如下):

Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'singerName' from result set. Cause: java.sql.SQLDataException: Cannot convert string '周杰伦' to java.sql.Time value

项目中的实体类:
public class music{

    private Integer MucId;

    private String MucName;

    private String singerName;

    private Time MucTime;

    private String MucPath;

    private String MucImg;

    public Integer getMucId() {
        return MucId;
    }

    public void setMucId(Integer mucId) {
        MucId = mucId;
    }

    public String getMucName() {
        return MucName;
    }

    public void setMucName(String mucName) {
        MucName = mucName;
    }

    public String getSingerName() {
        return singerName;
    }

    public void setSingerName(String singerName) {
        this.singerName = singerName;
    }

    public Time getMucTime() {
        return MucTime;
    }

    public void setMucTime(Time mucTime) {
        MucTime = mucTime;
    }

    public String getMucPath() {
        return MucPath;
    }

    public void setMucPath(String mucPath) {
        MucPath = mucPath;
    }

    public String getMucImg() {
        return MucImg;
    }

    public void setMucImg(String mucImg) {
        MucImg = mucImg;
    }
    
     public music(String mucName, String singerName, Time mucTime, String mucPath, String mucImg) {
        MucName = mucName;
        this.singerName = singerName;
        MucTime = mucTime;
        MucPath = mucPath;
        MucImg = mucImg;
    }

    @Override
    public String toString() {
        return "music{" +
                "MucId=" + MucId +
                ", MucName='" + MucName + '\'' +
                ", singerName='" + singerName + '\'' +
                ", MucTime=" + MucTime +
                ", MucPath='" + MucPath + '\'' +
                ", MucImg='" + MucImg + '\'' +
                '}';
    }
}
Dao层:
public interface MusicAskDao {

    List<music> findAll();
    

    Integer addMusic(music music);

}
Mapper:
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yohane.dao.MusicAskDao">

    <resultMap id="musicDo" type="com.yohane.pojo.music">
        <id column="id" property="MucId"/>
        <result column="name" property="MucName"/>
        <result column="musicTime" property="MucTime"/>
        <result column="musicPath" property="MucPath"/>
        <result column="musicImg" property="MucImg"/>
    </resultMap>

    <select id="findAll" resultMap="musicDo">
        select * from music_table
    </select>

    <insert id="addMusic" parameterType="com.yohane.pojo.music">
        insert into music_table(name,singerName,musicTime,musicPath,musicImg) values(#{MucName},#{singerName},#{MucTime},#{MucPath},#{MucImg})
    </insert>



</mapper>
test:
 @Test
    public void testMybatis(){

        SqlSession sqlSession = LoadMybatis.getSqlSession();

        MusicAskDao ask = sqlSession.getMapper(MusicAskDao.class);

        List<music> musicList = ask.findAll();

        for (music value:musicList){
            System.out.println(value.toString());
        }

    }
数据库:

问题:

在查询所有数据的时候出现了

Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'singerName' from result set. Cause: java.sql.SQLDataException: Cannot convert string '周杰伦' to java.sql.Time value

报错

翻译过来就是:

原因:org.apache.ibatis.executor.result.ResultMapException:尝试从结果集中获取列“singerName”时出错。原因:java.sql.SQLDataException:无法转换字符串'周杰伦' 到java.sql.Time值

解决方案:

在使用添加Music到数据库中方法使创建了一个有参构造函数(id不包含,因为在数据中是自增)。

添加完之后,查询的时候就发现了报错。

原因是有了有参构造函数之后无参构造函数则不存在,添加上后即可解决。

扩展问题:

mybatis实体为什么要提供一个无参的构造函数

Mybatis 会调用这个默认构造函数来构造实例,即实体类需要通过Mybatis进行动态反射生成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mybatis中Error attempting to get column ‘xx‘ from result set 问题解决 的相关文章

  • 如何在AngularJS中正确使用HTTP.GET?具体来说,对于外部 API 调用?

    我在controller js中有以下代码 var myApp angular module myApp myApp service dataService function http delete http defaults header
  • AJAX 中的 GET 与 POST?

    为什么 AJAX 中有 GET 和 POST 请求 因为它无论如何都不影响页面 URL 由于数据未反映到页面 URL 因此通过 AJAX 中的 GET 传递敏感数据有何区别 您应该根据您的 Web 服务要求使用正确的 HTTP 动词 当处理
  • 我想向我的销售点的用户授予特权,但我不知道如何做,有什么建议吗?

    我有一个问题 我有一个用netBeans制作的销售点系统 2个用户可以在我的系统中注册 管理员 和 供应商 系统中有几个模块 包括 Inventario 模块允许您在数据库中输入 修改 删除和搜索文章 问题是我希望只有管理员有权限进入该模块
  • PHP 使用带有标头的 cURL 和 GET 请求

    过去有一些更棘手的问题 如下所示 如何从 PHP 发送带有标头的 GET 请求 https stackoverflow com questions 19259490 how do i send a get request with a he
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值
  • MyBatis Spring Boot 自定义类型处理程序

    我需要 Spring Boot 和 MyBatis 集成方面的帮助 我对自定义 BaseTypeHandler 有疑问 我创建了一个映射器 MappedTypes LocalDateTime class public class Local
  • WordPress 按标题获取帖子,例如

    我正在尝试为 WordPress 创建一个小型搜索功能 AJAX 调用应该获取标题类似的所有帖子 quote 是否有可能在内部实现这种情况get posts 功能 别误会我的意思 阿贾克斯工作正常 我的functions php 中有aja
  • MyBatis 映射中的复合键

    我无法将组合键传递给 MyBatis
  • 使标签充当输入按钮

    我怎样才能做一个 a href http test com tag test Test a 就像表单按钮一样 通过充当表单按钮 我的意思是 当单击链接执行操作时method get 或 post 以便能够通过 get 或 post 捕获它
  • Spark Java框架中如何使用get获取请求参数?

    我是 Sparkjava 的新手 我想使用 Spark java 读取我的请求参数 但我无法找到正确的语法 请帮帮我 下面是我的路由方法和客户端对其的调用 我的客户请求网址 smartapp getDataViewModelConfig c
  • 如何通过 Ruby 中的代理获取带有用户代理和超时的 URL?

    如果我需要通过某些方式获取 URL 我该如何获取 URLproxy 它必须有一个timeout最大 n 秒 和一个用户代理 require nokogiri require net http require rexml document d
  • 在 PHP 中从 URL 斜杠后获取两个单词

    我需要从 URL 中获取两个单词 例如我有以下 URL http mydomain com alrajhi invoice 108678645541 http mydomain com alrajhi invoice 10867864554
  • 使用 jQuery 将值发送到 $_GET

    我正在使用一个 PHP 脚本 该脚本正在通过 GET 等待两个值 我正在尝试使用 jQuery 传递这两个值 而这正是我不太擅长的地方 这是我得到的代码 有人能指出我正确的方向吗 谢谢 function xrate id rating aj
  • AJAX .post 异步

    以下具体执行什么操作 ajax type POST async false vs ajax type POST async true 这意味着行为有什么区别 From jQuery 站点 http api jquery com jQuery
  • ajax“GET”调用返回 jsonp 正常,但回调产生“未定义”数据

    我正在使用来自 html 页面的 ajax jquery 调用来访问跨域 Web 服务 虽然我可以使用 firebug 查看 jsonp 数据 但我无法将其加载到变量中 甚至无法显示它 出于调试目的 尝试使用 jsonpCallback s
  • jQuery 提取 div 内的文本,但不在 p 标签中

    在下面的代码中 我想将一个变量放入文本中div但不是里面的东西p tag div class review content merchant review content I want to grab this text p class r
  • Mybatis XML 与注解

    我读过有关Mybatis的书籍和文档 XML和Annotation都可以满足我的要求 但是从myBatis官方网站来看 他们声称XML是做Mappers的更好方法 因为Java注释有局限性 我个人更喜欢注释 例如 public interf
  • 通过删除空 GET 变量并简化变量名称来缩短 URL

    我正在开发一个网站 在提交后组成一个 URLGET form 表单值作为一组变量传递 其中必须至少定义一个变量才能在数据库上进行搜索 我想将网址缩短为删除空表单元素并使其更加用户友好简化变量名称 目前 URL 如下所示 只是带有更多变量 我
  • 通话后返回App

    我正在尝试通过应用程序拨打电话 我希望它在通话后返回到应用程序 我在这个论坛问过这个问题 但我不明白答案 如何在 Android 中拨打电话并在通话结束后返回到我的活动 https stackoverflow com questions 1
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s

随机推荐