0

ロジックは少し複雑なので、ここで例を示します。テーブルに A、B、C という 3 つのフィールドがあるとします。次の xml マッパーは、Blog クラスのインスタンスのプロパティを入力します。

<resultMap type="Blog"  id="result">
    <result property="A" column="A"/>
    <result property="B" column="B"/>
    <result property="C" column="C"/>
</resultMap>

問題は、A、B、C の 3 つのプロパティを含むクラス User を取得した場合です。以前の resultMap を使用して、クラス User のインスタンスに A、B プロパティを入力するにはどうすればよいでしょうか。つまり、上記の resultMap がマップできるすべてのプロパティを入力したいということです。この問題を解決するには?どうもありがとう!

4

2 に答える 2

1

あなたはそのようなことを試すことができます:

<select id="selectUsers" parameterType="int" resultType="com.someapp.model.User">
    select id             as A, 
           username       as B,   
           hashedPassword as D
    from some_table
    where id = #{id}
</select>

MyBatisResultMapは、名前に基づいて列を JavaBean プロパティにマップする を自動的に作成します。列名が正確に一致しない場合は、列名に select 句のエイリアスを使用して、ラベルを一致させることができます。A、B、および C は、ゲッターとセッターを提供する必要があります。

于 2013-01-23T09:11:24.693 に答える
0

ポール・バルガスは正しい。もちろん、適切なゲッターとセッターを提供する必要があります。オブジェクトを操作して各テーブルで基本的な crud 操作を実行する場合は、MyBatisGeneratorを確認する必要があります。これにより、各テーブルごとにクラスが提供され、適切な構成を使用した強力な条件付き選択を含む基本的な操作のインターフェイスと xml 実装が生成されます。チュートリアルに従えば、次のように書くだけです。

SqlSession sqlSession = sqlSessionFactory.openSession();
try {
  UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  List<User> allRecords = mapper.selectByExample(null);//Select All
} finally {
  sqlSession.close();
}

これはさらに最適化できますが (MyBatis プラグインまたは Spring との統合)、それはクラスを生成した後の単純な使用方法です。

于 2016-06-08T17:13:56.457 に答える