Ibatis/MyBatis动态选择,无需创建任何Pojo/Mapper

Rud*_*udy 6 ibatis mybatis

有没有办法使用Ibatis/MyBatis动态选择/更新/删除?

当我说"动态"时,它意味着我根本不想创建任何POJO/DataMapper.

任何URL示例都会受到欢迎.

Ang*_*own 10

是的,只需将resultType属性设置为map,表数据将放入列名称的HashMap中.如果查询返回多于1行,则映射的行将放入List中.如果要选择单个列,则只能获取该值(如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");
Run Code Online (Sandbox Code Playgroud)

这适用于MyBatis 3; 我想你可以在iBatis 2中做类似的事情.