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

这篇具有很好参考价值的文章主要介绍了mybatis中Error attempting to get column ‘xx‘ from result set 问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景描述

在使用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());
        }

    }
数据库:
mybatis中Error attempting to get column ‘xx‘ from result set 问题解决
问题:

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

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进行动态反射生成。文章来源地址https://www.toymoban.com/news/detail-509613.html

到了这里,关于mybatis中Error attempting to get column ‘xx‘ from result set 问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Proxy error: Could not proxy request /api/index/webconfig from localhost:8080 to http://www.xx.com

    报错信息: Proxy error: Could not proxy request /api/index/webconfig from localhost:8080 to http://www.xxxxxx.com 报错截图: 解决办法: 确保本地跨域配置正常,尤其是rewrite要设置 / ,否则会不生效; 最后,设置好之后记得重启前端先项目,让代理配置生效。 其他原因分析参考: https://blog.csd

    2024年02月03日
    浏览(64)
  • 问题解决记录=-=[Error response from daemon:Get... http: server gave HTTP response to HTTs client]

    问题: 通过服务器docker登录harbor,发现登陆报错; Error response from daemon:Get “https:.//.../v2/\\\"\\\": http: server gave HTTP response to HTTs client 或者docker登录成功,镜像可以拉下来,但是k8s拉取镜像时候就会报上述错误 原因: harbor默认是https协议的,如果想要通过http协议拉取harbor的镜像需要

    2024年02月09日
    浏览(53)
  • 【异常解决】(二)解决docker报错Error response from daemon: Get... http: server gave HTTP response to HTTPS

    场景:本机个人电脑Windows系统安装了docker客户端,远程Linux服务器部署了镜像仓库,远程仓库可以接收别的服务器的镜像推送,但接收本机电脑镜像时失败(实际为推送失败)。使用docker login XXXX:XX:XX:XX:8081命令登录时,报错 Error response from daemon: Get “https://XXXX:XX:XX:XX:8081/v2

    2024年02月11日
    浏览(66)
  • 报错AttributeError: Attempted to set WANDB to False, but CfgNode is immutable

     今天在跑代码的时候,使用到了wandb记录训练数据。  我在23服务器上跑的好好的,但将环境迁移到80服务器上重新开始跑时,却遇到了如下报错  看这个报错信息是由于wandb没有apis这个属性,于是我定位到具体的报错代码  😯原来程序在import wandb时就抛出异常了。  我

    2024年02月08日
    浏览(62)
  • maven编译failed to transfer from http://0.0.0.0/ during a previous attempt.

    报错如上,核心报错是:“failed to transfer from http://0.0.0.0/ during a previous attempt.”。 经过检查,发现https://maven.aliyun.com/nexus/content/groups/public/ 是https头,而setting.xml配置文件中写的是http。

    2024年02月12日
    浏览(40)
  • GET http://localhost:8080/xx/xx 404 (Not Found) 和Uncaught (in promise) Error: failed报错的原因

    这两天,我遇见了一个很离谱的错误,我找不到原因发生在哪里,但是知道代理服务器出错了,代理了后端给的接口,但是,却向本地发起请求,快把我整崩溃了 GET http://localhost:8080/xx/xx 404 (Not Found) 和Uncaught (in promise) Error: failed 开启代理后,发起请求,因为后端给的路径没有

    2024年02月07日
    浏览(54)
  • 解决Error response from daemon: Get**问题

    安装docker后,使用docker search java时,出现如下问题(最后面是 no such host) 改用中国的docker镜像仓库 进入etc/docker目录下 ls查看目录下有无daemon.json文件,如果没有创建一个 输入 然后保存退出 重启docker服务 搜索java镜像 安装docker后,使用docker search java时,出现如下问题(最后面是

    2024年02月14日
    浏览(52)
  • logstash问题记录:Attempted to resurrect connection to dead ES instance, but got an error

    发现kibana中日志不在更新了,停留在了一个时间点没有继续更新,然后就去检查各个服务,发现es、logstash、kibana均正常,不过发现es里面没有新日志产生,初步怀疑是logstash没有成功推送过来日志。 1.检查logstash日志,logstahs是java开发的,笔者将日志记录到了nohup.out文件中 检查

    2024年02月11日
    浏览(77)
  • Access to XMLHttpRequest at ‘http://xx‘ from origin ‘http://xx‘ has been blocked by CORS policy

    在进行前后端项目联调时,出现跨域问题,就是axios调用后端接口出现跨域 具体报错如下,原因是因为浏览器的 同源策略 ,会检查两个URL地址是否同源(协议,端口,IP地址是否相同),不同源就会出现跨域问题 针对跨域问题,有很多解决办法,比如前端配置跨域,后端配

    2024年02月16日
    浏览(55)
  • Result window is too large, from + size must be less than or equal to: [10000] but was

    做分页查询,当分页达到一定量的时候,报如下错误: 原因分析: es对from + size的大小进行限制,必须小于等于10000。 方案一(有风险) 将max_result_window参数阈值调大,在业务中限制分页大小,使from+size=10000; 具体操作 改法一: 动态更改索引设置,为max_result_window参数赋值足够

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包