错误: 字段 “fff“ 不存在

1, 版本

在这里插入图片描述

2,问题

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.postgresql.util.PSQLException: 错误: 字段 "fff" 不存在
  位置:156
### The error may exist in file [D:\ccs-fz\mm\mm-svc\target\classes\com\paas\mm\maper\PutInAmountMapper.xml]
### The error may involve com.paas.model.mm.PutInAmount.getAmounts-Inline
### The error occurred while setting parameters
### SQL: select contract_code as "contractCode", sum(amount::numeric) as "amount"     from mm_invoice_item       WHERE 1=1          and contract_code in     (      fff,      bbb,      ff)    group by contract_code
### Cause: org.postgresql.util.PSQLException: 错误: 字段 "fff" 不存在
  位置:156

3,解决方法

mybatis ${ } 和 #{ } 理解

#占位符的特点

  1. MyBatis处理 #{ } 占位符,使用的 JDBC 对象是PreparedStatement 对象,执行sql语句的效率更高。
  2. 使用PreparedStatement 对象,能够避免 sql 注入,使得sql语句的执行更加安全。
  3. #{ } 常常作为列值使用,位于sql语句中等号的右侧;#{ } 位置的值与数据类型是相关的。

$占位符的特点

  1. MyBatis处理 ${ } 占位符,使用的 JDBC 对象是 Statement 对象,执行sql语句的效率相对于 #{ } 占位符要更低。
  2. ${ } 占位符的值,使用的是字符串连接的方式,有 sql 注入的风险,同时也存在代码安全的问题。
  3. ${ } 占位符中的数据是原模原样的,不会区分数据类型
  4. ${ } 占位符常用作表名或列名,这里推荐在能保证数据安全的情况下使用 ${ }

方法一 (改占位符)

${} 改为 #{} 或者处理数据

方法二 (改数据)

在这里插入图片描述

原文链接:https://blog.csdn.net/m0_52388979/article/details/125720091

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值