Mybatisマルチパラメータ(3つのソリューション)


私が今接触している複数のパラメータを伝える方式には三つがあります。
第一案 
DAO層の関数方法 
1Public UserselectUser(String name,String area);対応Mapper.xml  
1
2
3<select id="selectUser"resultMap="BaseResultMap">    select  fromuser_user_t  whereuser_name = #{0}anduser_area=#{1}</select>この中で、xing{0}は、受信したのはdao層の中の最初のパラメータであり、xia{1}はdao層の中の第二パラメータを表し、より多くのパラメータが一致したら、後で足せばいいです。
第二の案
この方法はMapを使ってマルチパラメータを伝えます。
Dao層の関数方法
1Public UserselectUser(Map paramMap);対応Mapper.xml
1
2
3<select id=" selectUser"resultMap="BaseResultMap">   select  fromuser_user_t  whereuser_name = #{userName,jdbcType=VARCHAR}anduser_area=#{userArea,jdbcType=VARCHAR}</select>サービス層呼び出し
1
2
3
4
5Private UserxxxSelectUser(){Map paramMap=new hashMap();paramMap.put(“userName”,” ”);paramMap.put(“userArea”,” ”);User user=xxx. selectUser(paramMap);}個人はこの方法が直感的ではないと思っています。インタフェースの方法を見たら、直接に伝えるべきパラメータは何かを知ることができません。
第三のスキームDao層の関数方法
1Public UserselectUser(@param(“userName”)Stringname,@param(“userArea”)String area);対応Mapper.xml
1
2
3<select id=" selectUser"resultMap="BaseResultMap">   select  fromuser_user_t  whereuser_name = #{userName,jdbcType=VARCHAR}anduser_area=#{userArea,jdbcType=VARCHAR}</select個人的にはこの方法がいいと思いますが、開発者にdao層の方法を見てもらったら、どのようなパラメータを伝えるべきか分かります。
本転載は以下の通りですhttp://www.2cto.com/database/201409/338155.html