質問

クエリがあるとしましょう getUser ユーザー名とパスワードの2つのパラメーターを使用。このように見えるマッパー方法を持ちたいです:

public UserBean getUser(String userName, String password);

そのようなことを達成できる方法はありますか?それとも、パラメーターのマッパーメソッドマップ(およびXMLマッパーのパラメーターマップ)を渡す必要があるのでしょうか?

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

いくつかのヒントと説明を楽しみにしています。

役に立ちましたか?

解決

特別な構成がなければ、最初と2番目のパラメーターをそれぞれ#{1}と#{2}と呼ぶことができます。

数値的に参照するのではなく、パラメーターに名前を付けたい場合は、次のことを実行します。選択ステートメントのXMLマッピングで、parametertype = "map"を設定し、インターフェイスファイルで@paramでパラメーターを注釈付けします。たとえば、public userbean getuser(@param( "user_name" string username、@param( "password")string password); #{パスワード}、それぞれ。

他のヒント

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

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

どちらの場合も、梱包(ハッシュマップの構築または2つのパラメーターを保持するダミーユーザービーンの構築)が内部で行われます public UserBean getUser(String userName, String password) 方法。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top