解决mybatis执行SQL语句部分参数返回NULL问题
程序员文章站
2023-12-16 16:33:46
今天在写代码的时候发现一个问题:mybatis执行sql语句的时候返回bean的部分属性为null,在数据库中执行该sql语句能够正常返回,把相关代码反反复复翻了个遍,甚至...
今天在写代码的时候发现一个问题: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问题,希望对大家有所帮助