首页 > 解决方案 > 我们能否在 MyBatis 中为多种类型(如 Json、UUID 等)提供单个 TypeHandler

问题描述

目前在我的 mybatis 项目中,我们使用不同类型的处理程序与 DB 交互。例如,示例 UUID 和 JSON 类型处理程序如下所示:

UUID 类型处理程序:-

@MappedTypes({ UUID.class})
@MappedJdbcTypes(value = {JdbcType.OTHER})
public class UUIDTypeHandler extends BaseTypeHandler<UUID> {
    @Override
    public void setNonNullParameter(PreparedStatement ps, int ix, UUID parameter, JdbcType jdbcType) throws SQLException {
........
........

Json 类型处理程序:-

@MappedTypes(SampleJson.class)
@MappedJdbcTypes(value = {JdbcType.OTHER})
public class SampleJsonJsonTypeHandler extends BaseTypeHandler<SampleJson> {
.........
.........

同样,我基本上是为每种类型编写一个类型处理程序。那么,每种方法都有一种方法可以为所有类型提供一个类型处理程序吗?可能吗?

我尝试了下面的代码,但它似乎不起作用。

@MappedTypes({UUID.class, String.class})
@MappedJdbcTypes(value = {JdbcType.OTHER})
public class CommonTypeHandler extends BaseTypeHandler<Object> {
.........
.........

你能帮我解决这个问题吗?

标签: javamybatisspring-mybatismybatis-sql

解决方案


推荐阅读