springboot程序常见异常
1.关于MySQL数据库部分的异常
1.1通信异常
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
原因:可能是springboot的配置文件中关于mysql数据源部分的ip地址配置错误。
1.2不允许公钥检索
主要出现在MySQL8的版本上
Caused by: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
解决办法:在mysql连接字符串的url后添加allowPublicKeyRetrieval=true
1.3违反sql约束
Cause: java.sql.SQLException: ORA-01400: 无法将 NULL 插入 ("SL"."TEMP_TEST_TABLE"."ID")
上述就是一个违反不能为空null约束
可能的原因:(1)数据库中的表的列与对应的实体类(被@Entity标记的类)的属性不一致,比如表中多一个字段ID,未在实体类中定义ID属性。
(2)插入了null值。
1.4表的字段类型与实体类的属性类型不一致
Caused by: java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字
上述情况出现的原因:表中的字段类型为数字Number,而实体类对应的属性为String类型
解决办法:将String类型改为Integer
1.5表中无缘无故增加了字段
通常是由于表的字段名与实体类的属性名不同导致的
1.6标识符无效
Caused by: oracle.jdbc.OracleDatabaseException: ORA-00904: "MEDICAL_HEAL_INST_SER_NUM": 标识符无效
造成的原因是sql语句中出现了表中不存在的字段
解决办法:核对sql语句与对应的表,看是否存在字段不一致。