Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.TINYINT UNSIGNED在.yml文件中解决
时间: 2023-10-01 08:03:20 浏览: 106
在 YAML 文件中添加 MyBatis 的 TINYINT UNSIGNED 映射关系,可以在 `mybatis` 节点下添加 `typeHandlers` 节点,并在该节点下添加对应的映射关系。
例如:
```yaml
mybatis:
typeHandlers:
- type: TINYINT UNSIGNED
javaType: java.lang.Integer
handler: org.apache.ibatis.type.IntegerTypeHandler
```
这里使用了 `IntegerTypeHandler` 类来处理 TINYINT UNSIGNED 类型,你可以根据自己的需求选择合适的 TypeHandler。
需要注意的是,在 YAML 文件中,缩进和空格非常重要,因此需要严格按照上述格式进行配置。
相关问题
解释报错: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 版本,因为这个问题已经在某些版本中得到了修复。
希望这些信息能够帮助你解决这个问题。
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.TINYINT UNSIGNED
这个错误通常是因为 MyBatis 默认的 JdbcType 不支持 TINYINT UNSIGNED 类型导致的。您可以尝试更改 MyBatis 的 JdbcType 设置,将 TINYINT UNSIGNED 类型映射为其他支持的类型,例如 SMALLINT 或 INTEGER。您可以在 MyBatis 配置文件中找到 JdbcType 的设置,例如:
```xml
<typeHandlers>
<typeHandler jdbcType="TINYINT UNSIGNED" javaType="java.lang.Integer"
handler="org.apache.ibatis.type.IntegerTypeHandler"/>
</typeHandlers>
```
您可以将上述配置更改为:
```xml
<typeHandlers>
<typeHandler jdbcType="TINYINT UNSIGNED" javaType="java.lang.Integer"
handler="org.apache.ibatis.type.SmallIntTypeHandler"/>
</typeHandlers>
```
这将把 TINYINT UNSIGNED 类型映射为 SMALLINT 类型。
阅读全文