単一行の結果セットマッピング:
インターフェイスメソッドの戻り値は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(); } }