在MyBatis中使用PostgreSQL的UUID类型,需要进行如下配置:
<typeHandlers>
<typeHandler handler="com.example.UUIDTypeHandler"/>
</typeHandlers>
public class UUIDTypeHandler implements TypeHandler<UUID> {
@Override
public void setParameter(PreparedStatement ps, int i, UUID parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, Objects.toString(parameter, null));
}
@Override
public UUID getNullableResult(ResultSet rs, String columnName) throws SQLException {
String uuid = rs.getString(columnName);
return (uuid != null) ? UUID.fromString(uuid) : null;
}
@Override
public UUID getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String uuid = rs.getString(columnIndex);
return (uuid != null) ? UUID.fromString(uuid) : null;
}
@Override
public UUID getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String uuid = cs.getString(columnIndex);
return (uuid != null) ? UUID.fromString(uuid) : null;
}
}
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (id, name) VALUES (#{id, typeHandler=com.example.UUIDTypeHandler}, #{name})
</insert>
这样就可以在MyBatis中使用PostgreSQL的UUID类型了。需要注意的是,如果数据库中的UUID字段不是以String形式存储的,需要根据实际情况调整TypeHandler的实现方式。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: mybatis在项目中的作用是什么