Übergeben einer Map / HashMap vom Mybatis-Mapper an die SQL-Prozedur
Frage
Ich möchte 'Map' über Spring Mybatis Mapper XML an eine gespeicherte PL / SQL-Prozedur übergeben. Gibt es eine Möglichkeit, wie ich es mit dem entsprechenden Java-Typ und jdbctype übergeben kann? Ich kann eine Java-Klasse verwenden, um dem entsprechenden TypeHandler zuzuordnen, aber gibt es eine andere Möglichkeit, dies ohne Verwendung eines Typ-Handlers zu tun.
Lösung
Sie müssen einen TypeHandler verwenden.Auf diese Weise setzt MyBatis Java-Typen in vorbereitete und aufrufbare Anweisungen.
Wenn Sie den TypeHandler in Ihrer MyBatis-Konfiguration registrieren, wählt MyBatis automatisch den richtigen Type-Handler aus, ohne "typeHandler= ..." in die SQL-Map einzugeben.Auf diese Weise können Sie die Variable javaType verwenden, um Ihren Type-Handler zu finden. d.h.(org.apache.ibatis.session.Configuration)
configuration.getTypeHandlerRegistry().register(HashMap.class, new MyPLSQLTypeHandler());