记录一次 sql在数据库可以查到 mybatis代码查不到的问题
Posted 极致网络科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次 sql在数据库可以查到 mybatis代码查不到的问题相关的知识,希望对你有一定的参考价值。
原始代码: 查不到 SELECT b.ID, b.PRICE_ITEM_CODE, b.PRICE_NAME, b.DES_SITE_CODE, b.SRC_SITE_CODE, b.CALC_TYPE, b.BIZ_TYPE, b.CACULATE_MODE, b.PRODUCT_CODE, b.PRODUCT_EFFECT, b.DIS_TYPE, b.START_DATE, b.END_DATE, b.CREATE_DATE, b.MODIFY_DATE, b.CREATE_USER_CODE, b.MODIFY_USER_CODE, b.AUDIT_STATUS, b.AUDIT_USER_CODE, b.AUDIT_DATE, b.AUDIT_OPINION, b.RELE_SITE_CODE, b.REMARKS, b.AUDIT_KINDS, b.OFFER_STATUS FROM T_FOMF_SUPPER_PRICE_MAIN_AD b WHERE 1=1 <!-- AND b.PRICE_ITEM_CODE = ‘557‘ 写死可以查到 --> <!-- 计费类型 --> <trim></trim> <if test="priceItemCode != null and priceItemCode !=‘‘" > AND b.PRICE_ITEM_CODE = #{priceItemCode,jdbcType=VARCHAR} </if>
问题所在:PRICE_ITEM_CODE 字段的类型为 CHAR(5)导致
由于不满足5个长度会自动补,导致查不到。
解决方式: 加trim SELECT b.ID, b.PRICE_ITEM_CODE, b.PRICE_NAME, b.DES_SITE_CODE, b.SRC_SITE_CODE, b.CALC_TYPE, b.BIZ_TYPE, b.CACULATE_MODE, b.PRODUCT_CODE, b.PRODUCT_EFFECT, b.DIS_TYPE, b.START_DATE, b.END_DATE, b.CREATE_DATE, b.MODIFY_DATE, b.CREATE_USER_CODE, b.MODIFY_USER_CODE, b.AUDIT_STATUS, b.AUDIT_USER_CODE, b.AUDIT_DATE, b.AUDIT_OPINION, b.RELE_SITE_CODE, b.REMARKS, b.AUDIT_KINDS, b.OFFER_STATUS FROM T_FOMF_SUPPER_PRICE_MAIN_AD b WHERE 1=1 <!-- AND b.PRICE_ITEM_CODE = ‘557‘ --> <!-- 计费类型 --> <if test="priceItemCode != null and priceItemCode !=‘‘" > AND trim(b.PRICE_ITEM_CODE) = #{priceItemCode,jdbcType=VARCHAR} </if>
以上是关于记录一次 sql在数据库可以查到 mybatis代码查不到的问题的主要内容,如果未能解决你的问题,请参考以下文章
开发中遇到的问题---使用mybatis时 有一个sql查询不到结果 日志也显示查询为o 但是从日志中取出执行的sql到数据库客户端手动执行,可以查到数据
为啥mybatis生成的sql语句可以正确执行,但是返回结果却为空
一个事务中先插入数据,然后再查询所有数据,能查到刚才的记录吗