Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.BigInteger
时间: 2023-10-03 16:07:01 浏览: 186
这个错误是因为Mybatis并没有提供JdbcType为BigInteger的枚举类型,而在parameterMap中你使用了BigInteger作为jdbcType的值。正确的做法是使用NUMERIC或者是BIGINT作为jdbcType的值。
所以你应该将parameterMap中orderNum的jdbcType修改为NUMERIC,例如:
```
<parameterMap id="orderStatusResult" type="Order">
<parameter property="orderNum" jdbcType="NUMERIC"/>
<parameter property="bookId" javaType="Integer"/>
</parameterMap>
```
希望能够帮到你。
相关问题
解释报错:Cause: org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.INT
这个报错的意思是 MyBatis 找不到对应的枚举类型 JdbcType.INT。
通常情况下,MyBatis 使用 JdbcType 枚举类型来映射 Java 类型和 JDBC 类型。在你的 SQL 映射文件中,可能存在一个参数、结果集或者插入/更新语句的参数,它的 JDBC 类型指定为 JdbcType.INT,但是 MyBatis 找不到对应的枚举值。
解决这个问题的方法可能是:
1. 检查 SQL 映射文件中是否存在拼写错误,比如大小写不一致等。
2. 检查你的 MyBatis 版本是否与你使用的 JDBC 驱动版本兼容。如果不兼容,可能会导致 JdbcType 枚举类型不匹配。
3. 如果你在使用自定义类型处理器,确保你已经正确地实现了 JdbcType 的映射。
4. 如果你使用的是 MyBatis 3.5.x 版本,可以尝试升级到最新的 3.5.x 版本,因为这个问题已经在某些版本中得到了修复。
希望这些信息能够帮助你解决这个问题。
nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.LONGTEXT
这个错误是由于 MyBatis 在解析 JdbcType 时遇到问题导致的。具体原因是 JdbcType.LONGTEXT 枚举常量不存在。
JdbcType 是 MyBatis 中用于映射 Java 类型与 JDBC 类型的枚举类。它定义了各种常见的 JDBC 类型,如VARCHAR、INTEGER等。在你的代码中,可能出现了一个尝试使用 JdbcType.LONGTEXT 的地方,但实际上该枚举常量并不存在。
要解决这个问题,你可以检查代码中使用到 JdbcType.LONGTEXT 的地方,并确保使用的是正确的 JdbcType 枚举常量。如果你确定需要使用 LONGTEXT 类型,你可以尝试使用其他适合的 JdbcType,比如 CLOB 或 NVARCHAR。
另外,也可以查看你的数据库驱动程序是否正确配置,以确保支持所需的类型。如果仍然存在问题,建议提供更多的代码和具体错误信息,以便更好地帮助你解决问题。
阅读全文