栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java.sql.SQLDataException: Cannot determine value type from string ‘XXX‘

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java.sql.SQLDataException: Cannot determine value type from string ‘XXX‘

使用关联映射进行查询:一个学生属于一个班(一对一)

S_student实体类

package com.itheima.pojo;

public class S_student {
    private int id;
    private String name;
    private int age;
    private int cid;
    private C_class clas; // 把班级类作为属性

//    public S_student(){}

    public S_student(int id, String name, int age, int cid,C_class clas) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.cid = cid;
        this.clas=clas;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public C_class getClas() {
        return clas;
    }

    public void setClas(C_class clas) {
        this.clas = clas;
    }

    @Override
    public String toString() {
        return "S_student{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                ", cid=" + cid +
                ", clas=" + clas +
                '}';
    }
}

C_class实体类

package com.itheima.pojo;

public class C_class {
    private int id;
    private String classname;

    public C_class(int id, String classname) {
        this.id = id;
        this.classname = classname;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getClassname() {
        return classname;
    }

    public void setClassname(String classname) {
        this.classname = classname;
    }

    @Override
    public String toString() {
        return "C_class{" +
                "id=" + id +
                ", classname='" + classname + ''' +
                '}';
    }
}

StudentInfo

package com.itheima.dao;


import com.itheima.pojo.S_student;

import java.util.List;

public interface StudentInfo {
    // 查询每个学生对应的班级信息
    List getStudentinfo();
}

StudentInfo.xml





    
        select s.age age,s.cid cid,s.id id,s.name name,c.classname classname,c.id classid
        FROM s_student s,c_class c
        WHERe s.cid=c.id
    
    
        
        
        
        
        
        
            
            
        
    


注意:在核心配置文件中映射路径

StudentInfoTest

package dao;

import com.itheima.dao.StudentInfo;
import com.itheima.pojo.S_student;
import com.itheima.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;

import java.util.List;

public class StudentInfoTest {
    @Test
    public void getPersonOneTest() {
        //第一个:获取SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        StudentInfo student = sqlSession.getMapper(StudentInfo.class);

        List studentList = student.getStudentinfo();
        System.out.println(studentList);
        //第三步:关闭SqlSession
        sqlSession.close();
    }
}

运行报错

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'name' from result set.  Cause: java.sql.SQLDataException: Cannot determine value type from string '张三'
### The error may exist in com/itheima/dao/StudentInfo.xml
### The error may involve com.itheima.dao.StudentInfo.getStudentinfo
### The error occurred while handling results
### SQL: select s.age age,s.cid cid,s.id id,s.name name,c.classname classname,c.id classid         FROM s_student s,c_class c         WHERe s.cid=c.id
### Cause: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'name' from result set.  Cause: java.sql.SQLDataException: Cannot determine value type from string '张三'

解决方法:
1、检查在进行结果映射的时候是否对应的字段名有写错
2、如果代码检查没有错,运行还是报错,在S_student实体类中加上默认的构造方法就可以了

最后测试StudentInfo测试类,运行结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号