有没有办法使用Ibatis/MyBatis动态选择/更新/删除?
当我说“动态”时,这意味着我根本不想创建任何 POJO/DataMapper。
欢迎提供任何 URL 示例。
最佳答案
是的,只需将resultType
属性设置为map
,表数据就会被放入列名到值的HashMap中。如果查询返回多于 1 行,则映射的行将放入列表中。如果您想选择单个列,则可以仅获取该值(如 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");
这适用于MyBatis 3;我认为你可以在 iBatis 2 中做类似的事情。
关于Ibatis/MyBatis动态选择,无需创建任何Pojo/Mapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582034/