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

标签 ibatis mybatis

有没有办法使用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/

相关文章:

java - 为什么 iBATIS 会给出过时的结果,即使禁用了缓存?

java - 使用@Select查询数据,却得到 'Invalid bound statement (not found)'

java - 如何使用 mybatis 映射表示链表的结果集?

java - 使用 MyBatis,如何在不编写配置文件(即以编程方式)的情况下构建 SqlSessionFactory?

mysql - 使用 iBatis 调用存储过程

java - Mybatis源码项目构建报错: Non-resolvable parent POM

java - 从 mybatis 的 application.yml 获取 SQL session

java - 在 Activiti 中拦截任务创建以更新并行搜索索引的最佳方法?

java - mybatis接口(interface)映射器

java - 虽然有数据行,但结果集为空