Java MyBatis按id选择始终返回零
使用以下配置: POJO: StudentMapper.xmlJava 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(
...
<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