8

Ibatis/MyBatis を使用して動的に選択/更新/削除する方法はありますか?

「動的に」と言うときは、POJO/DataMapper をまったく作成したくないという意味です。

URL の例を歓迎します。

4

4 に答える 4

13

はい、resultType属性をに設定するだけmapで、テーブルデータが列名から値へのHashMapに配置されます。クエリが複数の行を返す場合、マップされた行はリストに入れられます。単一の列を選択する場合は、その値のみ(String、intなど)またはリストとして取得できます。

<select id="test1" resultType="map">select * from user</select>
<select id="test2" resultType="map" parameterType="int">
  select * from user where id=#{value}</select>
<select id="test3" resultType="string">select name from user</select>
...
// returns a list of maps
List test = sqlSession.selectList("test1");

// returns a single map
Object map = sqlSession.selectOne("test2", 0);

// returns a list of strings
List names = sqlSession.selectList("test3");

これはMyBatis3に適用されます。iBatis2でも同様のことができると思います。

于 2011-07-05T16:18:50.680 に答える
0

はい、API を介して実行時にマッピングを構築し、エンティティ クラスの代わりにマップを使用することが可能であるべきです。

于 2011-07-05T11:45:01.857 に答える