开发总结-常见异常(适合新手)

35 篇文章 0 订阅
本文介绍了在使用mybatis-plus插入数据时遇到的SQLIntegrityConstraintViolationException等常见问题,如ID字段值设置、Ambiguousmapping、请求参数格式、Fastjson解析错误等,并提供了相应的解决方案。
摘要由CSDN通过智能技术生成

Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: 无法将 NULL 插入 (“ZHXY_RSW_LOCAL”.“T_EXAM_SUBJECT”.“ID”)

使用mybatis-plus插入时,明明设置了id的值,还报这个错
在id字段上,添加 @TableId(type = IdType.INPUT)
在这里插入图片描述

Ambiguous mapping

Controller中有两个接口名字一样了
在这里插入图片描述

400 Bad Request

这一般就是请求参数不对,我这里是实例类中日期类型从Date 改为 String ,传参的时候才能传 2021-10-07,否则必须传2021/10/07
在这里插入图片描述

ORA-01745: 无效的主机/绑定变量名

将#改为$

order by ${reqVo.sortField} ${reqVo.sortOrder}

ORA-00911: 无效字符

Sql贴出来执行没问题,但是swagger调用就会报错
常见报错为:ORA-00911: 无效字符
可能是多了分号
在这里插入图片描述
在这里插入图片描述

nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{…}.Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #3 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111

在这里插入图片描述
不勾选才表示不传参数,勾选了表示传参了 空字符串
主要问题在于动态SQL中的条件,or改为and
在这里插入图片描述

Invalid bound statement (not found): com.iflytek.reptile.dao.UserMapper.findUserByName

检查application.properties配置文件中是否配置了mybatis.mapper-locations=classpath:mappers/*.xml
如果是mybatis-plus则使用:

mybatis-plus.mapper-locations=classpath:mappers/*.xml

ORA-00942: 表或视图不存在

在这里插入图片描述

ORA-00903: 表名无效

在这里插入图片描述

java.lang.NoSuchMethodException:com.iflytek.reptile.mapper.CommentMapper.()

在这里插入图片描述

ORA-01747: user.table.column, table.column 或列说明无效

在这里插入图片描述

There is no getter for property named ‘query’ in ‘class com.iflytek.core.vo.resource.TEnterpriseResourcesReqVoForExcel’

去掉mapper.xml中的query. 只有mapper接口中的参数使用了
@Param(“query”) 注解,才使用
在这里插入图片描述

Parameter ‘park’ not found. Available parameters are [query, page, param1, param2]

在mapper.xml中加上query. 因为在mapper接口中使用的@Param(“query”)注解,表示传过来的参数是query
在这里插入图片描述

No primary or single public constructor found for interface java.util.List - and no default constructor found either No primary or default constructor

原因是List是个接口,没有默认的构造器,需要加上@RequestParam注解
在这里插入图片描述

Unsatisfied dependency expressed through field ‘baseMapper’

看mapper接口上是不是没有加@Mapper注解
在这里插入图片描述

required a single bean, but 2 were found

启动类上加了,MybatisPlusConfig文件上也加了@MapperScan
在这里插入图片描述

com.alibaba.fastjson.JSONException: Text ‘2020-09-15T00:00:00’ could not be parsed, unparsed text found at index 10

将fastjson的版本换成 <fastjson.version>1.2.69</fastjson.version>

或者:
在这里插入图片描述

### 回答1: "SQL完整性约束违反" 是指在执行 SQL 操作时,数据库遇到了一个约束条件,而该操作会导致这个约束条件被违反。这通常是由于要插入或更新的数据不符合数据库中的完整性规则而导致的。例如,尝试将重复的值插入到主键列中,或者尝试在外键列中插入不存在的值。 ### 回答2: SqlIntegrityConstraintViolation 是一个 SQL 引发的异常类,用于表示违反数据库完整性约束的错误。完整性约束是指数据库表中定义的一组规则,用于确保数据的一致性和有效性。 当执行 SQL 语句时,如果违反了某个完整性约束,则会抛出 SqlIntegrityConstraintViolation 异常常见的完整性约束包括主键约束、唯一约束、外键约束和检查约束。 主键约束要求表中的某个字段具有唯一性,且不可为 null。违反主键约束时,插入或更新的数据已存在或为 null,都会抛出 SqlIntegrityConstraintViolation 异常。 唯一约束要求表中的某个字段具有唯一性,但可以为 null。违反唯一约束时,插入或更新的数据已存在,会抛出 SqlIntegrityConstraintViolation 异常。 外键约束用于在两个表之间建立关联关系。违反外键约束时,插入或更新的数据在关联表中不存在对应的值,会抛出 SqlIntegrityConstraintViolation 异常。 检查约束是用于限制某个字段的取值范围。违反检查约束时,插入或更新的数据不满足约束条件,会抛出 SqlIntegrityConstraintViolation 异常。 在处理 SqlIntegrityConstraintViolation 异常时,可以采取一些措施,如捕获异常并提供更有意义的错误提示信息,或者回滚事务以保持数据的一致性。 总之,SqlIntegrityConstraintViolation 异常表示数据库完整性约束违反的错误,根据具体的完整性约束类型和错误情况,可以采取相应的措施进行处理。 ### 回答3: SQLIntegrityConstraintViolationException是一个SQL异常,表示在执行数据库操作时发生了完整性约束违规的情况。 完整性约束用于确保数据库中的数据始终满足一组定义的规则。当给定的SQL语句违反了这些规则时,就会抛出SQLIntegrityConstraintViolationException异常常见的完整性约束包括主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)以及检查约束(CHECK)。例如,如果试图将一个已经存在的主键值插入到表中,就会触发主键约束违规导致该异常的抛出。 此外,还有许多其他可能导致SQLIntegrityConstraintViolationException异常的情况,例如删除或更新操作违反了外键约束、将空值插入了被设置为非空的字段等。 当捕获到SQLIntegrityConstraintViolationException异常时,可以采取以下几种措施来处理: 1. 检查数据是否满足数据库中定义的完整性约束; 2. 根据异常信息判断具体的完整性约束类型和违规的原因; 3. 修改SQL语句或数据,确保不再产生完整性约束违规; 4. 根据具体业务需要,采取合适的措施,例如回滚事务、提示用户等。 综上所述,SQLIntegrityConstraintViolationException是一个表示数据库操作违反完整性约束的异常,通过检查异常信息和相应的处理措施,可以解决这类问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个不回家的男人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值