20.12.17——动态SQL报错
问题描述:手动写了一段SQL如下,控制台报错,找不到原因
<select id="mybatisQueryBrandByPage" resultType="Brand">
SELECT id,name,image,letter FROM tb_brand
<where>
<if test="key!=null and key!=''">
name like concat("%",#{key},"%") or letter =#{key}
</if>
<if test="sortBy!=null and sortBy!=''">
ORDER BY ${sortBy}
</if>
<choose>
<when test="desc==true"> DESC</when>
<otherwise> ASC</otherwise>
</choose>
</where>
</select>
问题原因:
key为空时会生成如下SQL,SELECT id,name,image,letter FROM tb_brand WHERE OREDER BY.......
解决方法:
配置yml文件,开启mybatis日志,查看mybatis生成的SQL和执行的细节,找到问题原因,配置如下:
mybatis:
type-aliases-package: com.leyou.*.pojo
mapper-locations: classpath*:mapper/*Mapper.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl //开启日志