mybatis 使用 parameterType="Map" 传入值后 数据库中得到的却是 NULL

发布时间:2016-12-7 3:50:17 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"mybatis 使用 parameterType="Map" 传入值后 数据库中得到的却是 NULL",主要涉及到mybatis 使用 parameterType="Map" 传入值后 数据库中得到的却是 NULL方面的内容,对于mybatis 使用 parameterType="Map" 传入值后 数据库中得到的却是 NULL感兴趣的同学可以参考一下。

mybatis 映射文件: <select id="queryFuzzyMessagesByUser" parameterType="Map" resultType="MessageDto"> select <include refid="messageInfo" /> , <include refid="uInfo" /> from tb_message m , tb_user u <where> m.user_id = u.id and m.f_type = 0 <if test="messageId != null and messageId != ''"> and m.id = #{messageId,jdbcType=NUMERIC} </if> <if test="title != null and title != ''"> and m.title like '%${title}%' </if> <if test="userId != null and userId != ''"> and u.id = #{userId,jdbcType=NUMERIC} </if> <if test="sDateMin != null"> and m.s_date >= #{sDateMin, jdbcType=DATE} </if> <if test="sDateMax != null"> and m.s_date <= #{sDateMax, jdbcType=DATE} </if> <if test="sTimeMin != null"> and m.s_time >= #{sTimeMin, jdbcType=TIME} </if> <if test="sTimeMax != null"> and m.s_time <= #{sTimeMax, jdbcType=TIME} </if> </where> </select> service 层代码: Map<String,Object> param = new HashMap<String,Object>(); Calendar c = Calendar.getInstance(); c.set(2013, 1, 18, 1, 30); param.put("sDateMin", new Date(c.getTimeInMillis())); Time a = new Time(c.getTimeInMillis()); param.put("sTimeMin", a.toString()); c.set(2015, 8, 18, 14, 50); param.put("sDateMax", new Date(c.getTimeInMillis())); a = new Time(c.getTimeInMillis()); param.put("sTimeMax",a.toString()); List<MessageDto> ms = _mService.queryFuzzyMessagesByUser(param); for(MessageDto m : ms){ System.out.println(m.getId()); } 今天不知道为什么,总是不在状态!尤其是出现了这种狗屎问题,今天贴出来,以免以后踩到狗屎...................... 在 java service 层:使用HashMap传值,结果传入了NULL到数据库,映射名称完全没有问题,后来发现了:原来是我在映射文件那里多了空格!面壁........ <if test="sDateMin != null"> and m.s_date >= #{sDateMin , jdbcType=DATE} </if>

上一篇:【C#利用后台动态加载数据】Winform“防界面卡死”
下一篇:分析机房收费系统——导图

相关文章

相关评论