MyBatisの処理結果セットのマッピング

単一行の結果セットマッピング:

インターフェイスメソッドの戻り値はMap型にマップするために設定されresultTypeとSQL文の属性として定義されます。列の値としてキーとして列名にこのデフォルト値は、。

オブジェクトのコレクションに対応する受信された地図<Strirng、オブジェクト>は、カプセル化されたクエリ結果(一つのオブジェクトに対応するデータの行)をマップ

多列結果セットマッピング:

一覧<地図<文字列、オブジェクト>>領収書は、店舗、複数のオブジェクトをチェックアウト

このようなID値のキーを使用する必要性などのいくつかの特別な事情がある場合、次のように使用することが必要であるように、データは、地図オブジェクトに行の値にカプセル化されます。

この時間が必要SQLステートメントを呼び出すために、文字列を使用することに注意してください。

< 選択し、ID = "findAllUsers" resultTypeと= "ユーザー" >  
を選択し、ID、名前、t_userから性別
</ 選択>
@Test
 公共 ボイドtest_findAllUsers(){ 

SQLSESSION SQLSESSION = NULL ;
試す{ 
SQLSESSION = MyBatisSqlSessionFactory.openSession()。

地図 <整数、ユーザー>マップ= sqlSession.selectMap( "com.briup.mappers.SpecialMapper.findAllUsers"、 "ID" )。

map.forEach((K、V) - >のSystem.out.println(K + ":" + V))。

} キャッチ(例外e){ 
e.printStackTrace(); 
} 
}

ここでキー、及びデータの各行としてIDマップ値が値、sqlSession.selectMapとしてユーザオブジェクト値にカプセル化された()デフォルト値として米国で指定されたキー列、カプセル化オブジェクトとして使用することができます。それは我々が指定することができるというキーが、このデータだけの電流値をオブジェクトにカプセル化されています。

地図<整数、ユーザー>マップ= sqlSession.selectMap( "com.briup.mappers.SpecialMapper.findAllUsers"、 "ID")。

実際には、複数のコアコードのみ指定されたIDがキーであります

 

 

ResultHandlerカスタム結果セットResultSetをMyBatisの

@Test
 公共 ボイドtest_ResultHandler(){
 最終地図<整数、文字列>マップ= 新しい HashMapの<整数、文字列> (); 
SQLSESSION SQLSESSION = nullを試す{ 
SQLSESSION = MyBatisSqlSessionFactory.openSession()。


sqlSession.select( "com.briup.mappers.SpecialMapper.findAllUsers"、 ResultHandler <ユーザー> (){ 


@Override 
公共 ボイド handleResult(ResultContext <?拡張ユーザー> resultContextは){
 // 获取当这条数据封装好的ユーザー对象 
ユーザーユーザー=resultContext.getResultObject(); 
 // カプセル化方法独自要件
map.put(user.getId()、user.getName()); 
} 
}); 


map.forEach((K、V) - >システム。 out.printlnを(K + ":" + V)); 


} キャッチ(例外E){ 
e.printStackTrace(); 
} 


}

 

おすすめ

転載: www.cnblogs.com/Magic-Li/p/11687631.html