今天在寫代碼的時候發現一個問題:mybatis執行sql語句的時候返回bean的部分屬性為null,在數據庫中執行該sql語句能夠正常返回,把相關代碼反反復復翻了個遍,甚至都重啟eclipse了,依舊沒解決問題,後來網上搜了一下,還真有類似的問題。
閒話少說,直接說問題,該sql語句是自己寫的,resultType直接用了該bean全名稱,最終導致部分屬性顯示為null,
原來的寫法:
<select id="selectByArticle" parametertype="com.pet.bean.Article" resultmap="com.pet.bean.Article"> SELECT FROM ARTICLE </select> <sql id="queryCondition"> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(id)">AND ID = #{id,jdbcType=Integer}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(authorName)">AND AUTHOR_NAME = #{authorName,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(title)">AND TITLE = #{title,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(content)">AND CONTENT = #{content,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(makeTime)">AND MAKE_TIME = #{makeTime,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(updateTime)">AND UPDATE_TIME = #{updateTime,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(kind)">AND KIND = #{kind,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(about)">AND ABOUT = #{about,jdbcType=VARCHAR}</if> <if test="@org.apache.commons.lang.StringUtils@isNotBlank(status)">AND STATUS = #{status,jdbcType=VARCHAR}</if> </sql>
部分代碼:
日志顯示:
修改後的寫法:resultType改成了resultMap了
<select id="selectByArticle" parametertype="com.pet.bean.Article" resultmap="BaseResultMap"> SELECT FROM ARTICLE </select> <resultmap id="BaseResultMap" type="com.pet.bean.Article"> <id column="ID" jdbctype="INTEGER" property="id"> <result column="AUTHOR_NAME" jdbctype="VARCHAR" property="authorName"> <result column="TITLE" jdbctype="VARCHAR" property="title"> <result column="CONTENT" jdbctype="VARCHAR" property="content"> <result column="MAKE_TIME" jdbctype="VARCHAR" property="makeTime"> <result column="UPDATE_TIME" jdbctype="VARCHAR" property="updateTime"> <result column="KIND" jdbctype="VARCHAR" property="kind"> <result column="ABOUT" jdbctype="VARCHAR" property="about"> </result></result></result></result></result></result></result></id></resultmap>
日志顯示:
以上所述是小編給大家介紹的解決mybatis執行SQL語句部分參數返回NULL問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!