mybatis常见异常5个

1.javax.el.PropertyNotFoundException: Property ‘id’ not found on type com.amg.entity.Item
sql select 查询语句返回id字段,结果在com.amg.entity.role类中找不到相应的属性
2.sql语句拼接异常
发生在sql语句的预编译阶段,"#{}“在预编译时用?作为参数的占位符,”KaTeX parse error: Expected 'EOF', got '#' at position 60: …e = 'lifang'; "#̲{}" --> 编译结果为se…{}" --> 编译结果为select * from user where username = ‘lifang’;
"#{}"能够防止注入攻击,因为传入的值会被引号包裹,当成了一个字符串处理。
3.Mybatis XML中的SQL语句查询的列,不在数据库中。
新增SQL语句中的列不在数据库中,或列对应的值,数据类型不一致。
解决办法: 根据项目实际情况,通常有以下三种解决办法:
修改SQL语句中,将不存在的列从语句中去掉。
在数据库中,新增该不存在的列。
在新增时,不要使用中文符号的``表示字符串。也就是~符号对应的键。
4.连接查询时没有指定共有字段的所属表。 也就是说。A表有name字段,B表也有name字段。连接查询时查询name时。SQL服务器不知道返回哪个表的name字段导致。
解决方案:明确查询列的所属表。
5.在接口中指定单个返回对象。但执行SQL后,有多条符合条件的数据。
解决方案:
根据实际的业务场景,通常有以下两种解决办法:
修改接口的返回结果为集合。
修改SQL语句使其只返回一个符合条件的结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值