mybatis-注解版<2>动态sql的bug

1、动态sql不支持单引号

@Select({"<script>",
		"SELECT mnh.mnh_mcn_num, mf.mf_name, mt.mt_name, ma.ma_name, mnh.mnh_plat_name, mnh.mnh_content",
		"FROM ( SELECT * FROM tbl_varys_m_mcnnotification_h h <where>", 
		"<if test = 'mcnNum != null and mcnNum != \'\' '>	h.mnh_mcn_num = #{mcnNum} </if>", 
		"<if test = 'belongDate != null'> AND h.mnh_belong_date = #{belongDate} </if>", 
		"<if test = 'platId != null '>	AND h.mnh_platid_fk = #{platId} </if>", 
		"<if test = 'content != null and content != \'\' '>	AND h.mnh_content LIKE concat('%',#{content},'%') </if>", 
		"</where>) mnh", 
		"LEFT JOIN tbl_varys_m_mcninfo mf ON mf.mf_mcnid = mnh.mnh_mcn_num", 
		"LEFT JOIN tbl_varys_m_organization og ON og.og_id = mf.mf_orgid_fk", 
		"LEFT JOIN tbl_varys_d_media_attr ma ON ma.ma_id = og.og_mediaattr_fk", 
		"LEFT JOIN tbl_varys_d_media_type mt ON mt.mt_id = mf.mf_mtlx_fk", 
		"<if test = 'mediaTypeId != null '> AND mf.mf_id = #{mediaTypeId} </if>",
		"limit #{startIndex} , #{pageSize}","</script>"
	})

启动报错:

2018-12-10 17:56:43.366 ERROR 11148 --- [           main] o.m.spring.mapper.MapperFactoryBean      : Error while adding the mapper 'interface com.guwukeji.varysstat.dao.MCNPlatNotificDao' to configuration.

org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation.  Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 208; 元素类型 "if" 必须后跟属性规范 ">""/>"

修改之后:(将\’\’ 修改成\”\“)

@Select({"<script>",
		"SELECT mnh.mnh_mcn_num, mf.mf_name, mt.mt_name, ma.ma_name, mnh.mnh_plat_name, mnh.mnh_content",
		"FROM ( SELECT * FROM tbl_varys_m_mcnnotification_h h <where>", 
		"<if test = 'mcnNum != null and mcnNum != \"\" '>	h.mnh_mcn_num = #{mcnNum} </if>", 
		"<if test = 'belongDate != null'> AND h.mnh_belong_date = #{belongDate} </if>", 
		"<if test = 'platId != null '>	AND h.mnh_platid_fk = #{platId} </if>", 
		"<if test = 'content != null and content != \"\" '>	AND h.mnh_content LIKE concat('%',#{content},'%') </if>", 
		"</where>) mnh", 
		"LEFT JOIN tbl_varys_m_mcninfo mf ON mf.mf_mcnid = mnh.mnh_mcn_num", 
		"LEFT JOIN tbl_varys_m_organization og ON og.og_id = mf.mf_orgid_fk", 
		"LEFT JOIN tbl_varys_d_media_attr ma ON ma.ma_id = og.og_mediaattr_fk", 
		"LEFT JOIN tbl_varys_d_media_type mt ON mt.mt_id = mf.mf_mtlx_fk", 
		"<if test = 'mediaTypeId != null '> AND mf.mf_id = #{mediaTypeId} </if>",
		"limit #{startIndex} , #{pageSize}","</script>"
	})

转自:https://silentself.github.io/articles/2018-12/mybatis-annotation-sql-2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值