1.今天遇见一个Mybatis映射的异常,状态码提示500.
后台提示查询不到实体,实体类为空。
然后在debug下,一步一步调试整个流程。
在这里插入图片描述
二.这里出现错误了,由于实体类中属性名和数据库中名字不同,所以返回的resultType不能用默认的实体类,而应该自己封装结果集BaseMap。
<resultMap id="BaseMap" type="com.zhang.pojo.Article">
<id property="m_id" column="r_id" jdbcType="INTEGER"/>
<result property="m_author" column="r_author" jdbcType="VARCHAR"/>
<result property="m_summary" column="r_summary" jdbcType="VARCHAR"/>
<result property="m_content" column="r_content" jdbcType="VARCHAR"/>
<result property="m_date" column="r_date" jdbcType="VARCHAR"/>
<result property="m_verify" column="r_verify" jdbcType="INTEGER"/>
<result property="m_publish" column="r_publish" jdbcType="INTEGER"/>
<result property="m_status" column="r_status" jdbcType="INTEGER"/>
</resultMap>
<!-- 根据ID查询 -->
<select id="findById" parameterType="int" resultMap="BaseMap">
select * from article where r_id = #{m_id}
</select>
其中m_author是实体类中属性名,column是数据库中名。如果两者相同可以直接返回实体类,否则返回查询结果会返回空。