在做mybatis的动态sql语句过程中,
测试时我出现了日志文件没错有数值,但控制台的数据却为空的问题
两个解决方式:
①
mybatis返回的值(resultType)为一个类(javaBean)时,需要注意的事项
参考博文:https://blog.csdn.net/cao478208248/article/details/27492067
我实体类的属性值是自动生成的带有了 ‘_’ ,而实体类自动处理掉了,和数据库不一样
②
mybatis的返回值设为“ resultMap=“BaseResultMap” ”
BaseResultMap相当于是GoodsMapper.xml里实体类(com.hsl.model.Goods)取的一个别名
<resultMap id="BaseResultMap" type="com.hsl.model.Goods" >
<constructor >
<idArg column="g_id" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="g_name" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="g_model" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="g_batch" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="g_unit" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="g_price" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="g_remarks" jdbcType="VARCHAR" javaType="java.lang.String" />
</constructor>
</resultMap>
foreach gid的案例
GoodsMapper.xml设置
<select id="selectGoodsByIdIn" resultMap="BaseResultMap" parameterType="java.util.List">
select * from goods where g_id in
<foreach collection="gIds" open="(" close=")" separator="," item="gId">
#{gId}
</foreach>
</select>