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