2015-02-09 8 views
5

ho trovato diversi esempi come collegare un resultHandler personalizzato a un MyBatis Query:Come collegare un resultHandler in MyBatis Mapper XML

esempio https://code.google.com/p/mybatis/wiki/ResultHandlerExample

Sfortunatamente il ResultHandler fornito nell'esempio non viene mai richiamato. (Come l'ultimo commento già detto)

così ho cercato una soluzione e abbiamo trovato questo: MyBatis - ResultHandler is not invoked

Ma questo non fa abbastanza in forma per il mio problema dal momento che sto usando MyBatis il modo xml stile piuttosto che il Modo in stile API. Quindi, nel mio caso non ho

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

C'è un modo per collegare il mio gestore personalizzato nel file XML, ad esempio il nodo <resultMap /> oder <select />?

risposta

7

È possibile definire il metodo con il resultHandler nel mapper:

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

Quindi è possibile utilizzarlo:

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

Come ho scritto sopra Cerco come utilizzare una ResultMapper personalizzata nella XML-way, non nel modo javacode –

+2

Hai chiesto come usare un ResultHandler: questa risposta è corretta. – Larry