用mybatis查询数据返回全是null的问题
这个现象非常典型,说明MyBatis 默认的 resultType 自动映射失败了,但用 resultMap 能查出数据。这背后有如下常见原因:
1. Student 类属性名和表字段名不完全一致
MyBatis 默认用“驼峰转下划线”自动映射,比如
studentIdstudent_id
- 但如果你的实体类属性名和表字段名完全一致,都是下划线风格,如 
 有些 MyBatis 版本/配置下自动映射会失效,导致 resultType 查出来是 null。student_id
2. resultMap 明确指定了映射关系,所以能查出数据
- resultMap 手动指定了 property 和 column 的一一对应关系,MyBatis 就能正确封装数据到实体类。
3. 案例
用这个查出来是null
<select id="selectStudent" parameterType="String" resultType="com.zijing.web.pojo.Student">
select * from t_student where student_id = #{student_id}
</select>
用这个查出来是数据
<resultMap id="StudentMap" type="com.zijing.web.pojo.Student">
<id property="student_id" column="student_id"/>
<result property="student_name" column="student_name"/>
<result property="student_gender" column="student_gender"/>
<result property="student_class_id" column="student_class_id"/>
</resultMap>
<select id="selectStudent" parameterType="String" resultMap="StudentMap">
select * from t_student where student_id = #{student_id}
</select>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号