6

getUseruserNameとpasswordの2つのパラメーターを持つクエリがあるとします。次のようなマッパーメソッドが必要です。

public UserBean getUser(String userName, String password);

そのようなことを達成する方法はありますか?または、マッパーメソッドのパラメーターマップ(およびxmlマッパーのいくつかのparameterMap)を渡す必要がありますか?

public UserBean getUser(Map<String, Object> paramMap);

ヒントや説明を楽しみにしています。

4

2 に答える 2

9

特別な設定をしなくても、最初のパラメータと2番目のパラメータをそれぞれ#{1}と#{2}として参照できます。

パラメータを数値で参照するのではなく、名前を付ける場合は、次の手順を実行します。SELECTステートメントのXMLマッピングで、parameterType = "map"を設定し、インターフェイスファイルでパラメータに@Paramの注釈を付けます。たとえば、public UserBean getUser(@Param( "user_name" String userName、@Param( "password")String password);を使用すると、XMLマッピングでユーザー名とパスワードを#{user_name#}およびそれぞれ#{password}。

于 2010-06-21T06:06:05.220 に答える
1

DAOメソッドのシグネチャを変更しないでください。考慮すべき唯一の問題は、マッピングの構築方法です。iBatisは1つの入力パラメーターのみをサポートしparameterType、2つの元のパラメーターを1つにパックするクラス(属性)を決定する必要があります。

このシナリオでは、(他のオプションの中でも)2つのパラメーターをMapHashMap通常)に配置するか、(パラメーターがクラスのプロパティに対応する場合)これらの2つのプロパティが設定されUserBeanたダミーを渡すことができます。UserBean

どちらの場合も、パッキング(2つのパラメーターを保持するHashMapまたはダミーのUserBeanの構築)は public UserBean getUser(String userName, String password)メソッド内で行われます。

于 2010-05-31T14:04:50.687 に答える