记录一次 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语句可以正确执行,但是返回结果却为空

一个事务中先插入数据,然后再查询所有数据,能查到刚才的记录吗

mybatis为啥执行select语句是,返回的结果都是空的

甩给他

Mybatis中在log日志或控制台打印执行的sql