Когда мы должны создать пользовательский обработчик типов в mybatis?

#mybatis #ibatis

#mybatis #ibatis

Вопрос:

Приведенная ниже строка взята из документа : https://mybatis.org/mybatis-3/configuration.html#:~:text=Whenever MyBatis sets a parameter,and Time API) by default.

Всякий раз, когда MyBatis устанавливает параметр в PreparedStatement или извлекает значение из результирующего набора, обработчик типов используется для извлечения значения средствами, соответствующими типу Java.

Кроме того, мы можем переопределить обработчики типов или создать свои собственные для работы с неподдерживаемыми или нестандартными типами.

Итак, один из таких сценариев, который я видел, касается типа Json, где нам нужен пользовательский обработчик типов, поскольку тип Json не поддерживается mybatis. Правильно ли я понимаю?

Кроме того, я хочу знать несколько других типов, которые не поддерживаются mybatis (просто любопытно), я искал в сети, но не смог найти ничего подходящего.

Комментарии:

1. Да, обработчик типов для JSON, похоже, популярен. Для JSON нет встроенного обработчика типов, потому что в API JDBC нет типа JSON. Другим примером является UUID по той же причине.

2. Обычно вы используете обработчики типов для любого типа, который не поддерживается вашей базой данных: например boolean , не существует в Oracle или DB2. Я также видел это для любого преобразования данных «на лету»; например, адаптация часового пояса временной метки между базой данных и приложением, которое работает в нескольких часовых поясах.

3. @TheImpaler.. Тип данных Json поддерживается базой данных postgres, но все же ibatis / mybatis требует обработчика типов для Json. Итак, я думаю, что мы используем TypeHandler, если он не поддерживается ibatis / mybatis, а не базой данных.