Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.TINYINT UNSIGNED在.yml文件中解决
时间: 2023-10-01 22:03:20 浏览: 39
在 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 文件中,缩进和空格非常重要,因此需要严格按照上述格式进行配置。
相关问题
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 类型。
Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.BigInteger
这个错误是因为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>
```
希望能够帮到你。