MyBatisのリターンマップ

MyBatisので、私たちはしばしば次のような使用します。

  • 結果を返します。
User selectOne(User user);
<select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="cn.lyn4ever.entity.User">
       select id,username,telphone from user where telphone=#{telphone} and password = #{password}
    </select>
  • (それが唯一の制御クエリであるという点で、実際のトップ)複数の結果を返します。
List<User> selectList(User user);
<select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="cn.lyn4ever.entity.User">
       select id,username,telphone from user
    </select>

ちょうどの上に私たちresultTypeの変化java.util.HashMap、それは次のように生成されます。

Map selectList(User user);
<select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  parameterType="cn.lyn4ever.entity.User"   resultType="java.util.HashMap">
       select id,username,telphone from user where telphone=#{telphone} and password = #{password}
    </select>

この結果は、Userクラスの属性と呼ばれるキー、属性値の値を言うことです。

もちろん、あなたもリストに、この地図を多くのレコードをチェックアウトすることができます

List<Map> selectList(User user);
<select id="selectOne"  parameterType="cn.lyn4ever.entity.User"  resultType="java.util.HashMap">
       select id,username,telphone from user
    </select>

しかし、時には我々はそれを行う方法を、この結果をしたいですか?

{
    "01":{
        username:"zhangsan",
        telphone:"13000000000"
    }
}

これは、我々は地図<文字列、ユーザー>、このような場合は2つの解があるをカスタマイズしたいものです。

1.ノート

@MapKey("id")
Map<String,User> getUserInMap();
<!--xml和之前写法一样-->
<select id="getUserInMap" parameterType="cn.lyn4ever.entity.User"   resultType="User">
   select id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>

プロパティ@MapKeyの値は、ユーザーオブジェクトを書かれています

xmlファイル2.書き込み

 HashMap<String,Object> getUserInMap();
<select id="getUserInMap" parameterType="cn.lyn4ever.entity.User"   resultType="java.util.HashMap">
SELECT id as 'key', * as 'value', id,username,telphone from user where telphone=#{telphone} and password = #{password}
</select>

あなたがチェックアウトする場合はもちろん、上記の二つの方法、言葉の数がリストされます的形式

おすすめ

転載: www.cnblogs.com/Lyn4ever/p/11614416.html