3

DAO 実装で定義された Mapper 関数に複数のパラメーターを送信しようとしていますが、パラメーターがどのクラスの所有者でもない場合、複数のパラメーターを送信できません。つまり、次のコードをどのように変更できますか-

obj.getName(int a, int b);

DAO実装では

public void getAllName() throws PersistenceException {
        SqlSession session = sf.openSession();
        try {
            session.selectList("getNames");         
        } finally {
            session.close();
        }
    }

a と b を送信して getNames をクエリしたいと考えています。

前もって感謝します。

4

2 に答える 2

13

マッパーを使用します。

interface Mapper
{
     @Select( " select names from names_table where a = #{fieldA} and b = #{fieldB}" )
     List<String> getNames(  @Param("fieldA") String fieldA, @Param("fieldB") String fieldB)
}

@Param タグを使用すると、SQL マップ内のパラメーターにアクセスするために使用できるものを指定できます。この例は @Select タグを示していますが、xml と同じように機能します。

次に、コードを変更し、

public List<String> getAllName() throws PersistenceException {
        SqlSession session = sf.openSession();
        try 
        {
             Mapper mapper = session.getMapper(Mapper.class);
            return mapper.getNames("a","b");
        } finally {
            session.close();
        }
    }

詳細については、ユーザー ガイドをお読みください。

于 2011-06-11T00:08:40.657 に答える
4

DAO 実装を使用している場合は、HashMap. キーと値のペアを追加して関数呼び出しに追加するだけで、 「キー」を使用しHashMapてアクセスできます。mapper.xml

于 2011-06-30T08:14:40.517 に答える