消息关闭
    暂无新消息!

mybatis sql查询获取不到值

问题作者 : 谁呀2017-08-19发布
<select id="selectAll" parameterType="com.xxx.entity.BiReportsTemplate" resultMap="BaseResultMap" >
    select brt.rtid,brtc.categoryname,brt.templatename,brt.templatesql,brt.templatetitle,brt.templatesumcolumns,brt.empcreatecode,brt.empcreatename,brt.createtime,brt.empmodifycode,brt.empmodifyname,brt.modifytime,brt.isenable,brt.counter 
    from bi_reports_template brt left join bi_reports_template_category brtc on brt.rtcid=brtc.rtcid where 1=1 
     <if test="templatename != null" >
       and brt.templateName = #{templatename,jdbcType=VARCHAR} 
     </if>
     order by brt.rtid
  </select>
sql如上, <if test="templatename != null" >
       and brt.templateName = #{templatename,jdbcType=VARCHAR} 
     </if>
获取不到templatename值什么原因哦???

8个回答

︿ 3
sql查询应该是这样 ,我的原因是sql
 select brt.rtid,brtc.categoryname,brt.templatename,brt.templatesql,brt.templatetitle,brt.templatesumcolumns,brt.empcreatecode,brt.empcreatename,brt.createtime,brt.empmodifycode,brt.empmodifyname,brt.modifytime,brt.isenable,brt.counter from bi_reports_template brt left join bi_reports_template_category brtc on brt.rtcid=brtc.rtcid where 1=1 and brt.templateName = 【这里是个问号,获取不到机票业绩统计表】 order by brt.rtid ,是哪里写错了哦
︿ 2
==>  Preparing: select brt.rtid,brtc.categoryname,brt.templatename,brt.templatesql,brt.templatetitle,brt.templatesumcolumns,brt.empcreatecode,brt.empcreatename,brt.createtime,brt.empmodifycode,brt.empmodifyname,brt.modifytime,brt.isenable,brt.counter from bi_reports_template brt left join bi_reports_template_category brtc on brt.rtcid=brtc.rtcid where 1=1 and brt.templateName = ? order by brt.rtid 
==> Parameters: 机票业绩统计表(String)

debug Parameters有值 这个是什么东西不认识啊???
︿ 1
<select id="findReportsTemplateManageListForUser" parameterType="String" resultMap="BaseResultMap">
    select DISTINCT brt.rtId,brtc.categoryName,brt.templateName,brt.templateSQL,brt.templateTitle,
brt.templateSumColumns,brt.empCreateCode,brt.empCreateName,brt.createTime,brt.empModifyCode,
brt.empModifyName,brt.modifyTime,brt.isEnable,brt.counter from bi_reports_template brt left join bi_reports_template_category brtc 
on brt.rtcId=brtc.rtcId left join bi_reports_template_purview brtpw on brt.rtId=brtpw.rtId where 1=1 and brt.isEnable=1 
<if test="_parameter != null" >
       and brt.templateName = #{templatename,jdbcType=VARCHAR} 
     </if>
order by brt.rtId
  </select>
把parameterType从对象换成string ,
<if test="_parameter != null" >
       and brt.templateName = #{templatename,jdbcType=VARCHAR} 
     </if>
这样写也不行  and brt.templateName = ? 这里还是个问号??????
︿ 1
templatename 的值是机票业绩统计表

也就是 

select brt.rtid,brtc.categoryname,brt.templatename,brt.templatesql,brt.templatetitle,brt.templatesumcolumns,brt.empcreatecode,brt.empcreatename,brt.createtime,brt.empmodifycode,brt.empmodifyname,brt.modifytime,brt.isenable,brt.counter from bi_reports_template brt left join bi_reports_template_category brtc on brt.rtcid=brtc.rtcid where 1=1 and brt.templateName = '机票业绩统计表' order by brt.rtid
︿ 0
SELECT
brt.rtid,
brtc.categoryname,
brt.templatename,
brt.templatesql,
brt.templatetitle,
brt.templatesumcolumns,
brt.empcreatecode,
brt.empcreatename,
brt.createtime,
brt.empmodifycode,
brt.empmodifyname,
brt.modifytime,
brt.isenable,
brt.counter
FROM
bi_reports_template brt
LEFT JOIN bi_reports_template_category brtc ON brt.rtcid = brtc.rtcid
WHERE
1 = 1
AND brt.templateName = '机票业绩统计表'
ORDER BY
brt.rtid
︿ 0
<if test="templatename != null" >
       and brt.templateName like CONCAT(CONCAT('%',#{templatename}),'%')
     </if>
and brt.templateName like CONCAT(CONCAT('%',?),'%') 
if判断有值为啥sql就是个问号?前辈呢前辈呢
︿ 0
我很奇怪你的select里写的是brt.templatename,而where里写的是templateName竟然没报错????