2015-02-09 4 views
5

ich einige Beispiele dafür, wie die Verbindung eines benutzerdefinierten ResultHandler zu einem Mybatis Frage gefunden:Wie ein ResultHandler in Mybatis Mapper XML verbinden

z.B. https://code.google.com/p/mybatis/wiki/ResultHandlerExample

Leider wird der im Beispiel angegebene ResultHandler nie aufgerufen. (Wie der letzte Kommentar bereits erwähnt)

Also habe ich nach einer Lösung gesucht und gefunden dieses: MyBatis - ResultHandler is not invoked

Aber das passt nicht ganz zu meinem Problem, da ich Mybatis die xml-style Art und Weise, anstatt das bin mit API-Stil. Also in meinem Fall habe ich keine

SqlSession session = MyBatisConnectionFactory.getSqlSessionFactory().openSession(true); 

Gibt es eine Möglichkeit, meine benutzerdefinierten Handler in der XML-Datei zu verbinden, zum Beispiel die <resultMap /> oder <select /> Knoten?

Antwort

7

Sie können Verfahren mit ResultHandler in Ihrem Mapper definieren:

public interface YourMapper { 
    void getObjects(@Param("param1") Object param1, ResultHandler handler); 
} 

Dann können Sie es verwenden:

List<Object> getObjects(object param1) { 
    YourResultHandler resultHandler = new YourResultHandler(); 
    yourMapper.getObjects(param1, resultHandler); 
    return resultHandler.getResults(); 
} 
+0

Wie ich geschrieben habe oben Ich suche, wie eine benutzerdefinierte ResultMapper in der verwenden XML-Weg, nicht im javacode-Weg –

+2

Sie haben gefragt, wie man einen ResultHandler benutzt - diese Antwort ist richtig. – Larry

Verwandte Themen