Java MyBatis按id选择始终返回零

Java MyBatis按id选择始终返回零,java,mysql,orm,mybatis,Java,Mysql,Orm,Mybatis,使用以下配置: POJO: StudentMapper.xml ... <select id="findStudentById" parameterType="int" resultType="Student"> SELECT student_id, name, email FROM Student WHERE studentId = #{studentId} </select> ... 问题是每当我运行StudentService.findStudentById(

使用以下配置:

POJO:

StudentMapper.xml

...
<select id="findStudentById" parameterType="int" resultType="Student">
  SELECT student_id, name, email FROM Student WHERE studentId = #{studentId}
</select>
...
问题是每当我运行
StudentService.findStudentById(studentId)
(我没有把它放在这里)时,每次都会得到相同的编号(零)(表中的学生id是自动生成的,从1开始,而不是从0开始)


编辑:但其他参数(姓名和电子邮件)已正确返回

默认情况下,MyBatis无法映射
student\u id=>studentId
。这里有多个选项:将MyBatis配置为将下划线转换为camelCase或使用
resultMap

例如:

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>
<resultMap id="studentMap">
    <result property="studentId" column="student_id"/>
    <result property="name" column="name"/>
    <result property="email" column="email"/>
</resultMap>

例如:

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>
<resultMap id="studentMap">
    <result property="studentId" column="student_id"/>
    <result property="name" column="name"/>
    <result property="email" column="email"/>
</resultMap>


您没有向我们展示在数据库中插入数据的代码,因此我将猜测您可能做错了什么。尽管您在表中使用的是自动生成的列,但在插入学生数据时,您将向其发送int studentId。我还假设您没有为它定义任何值,因为您希望它是自动生成的,所以MyBatis将向student_id添加int的默认值,即0

此设置提供了SAXParserException