MyBatis中如何返回 Map结果集
如何返回Map集合
文章共1,144字 · 阅读需要大约4分钟
一键AI生成摘要,助你高效阅读
问答
·
- 使用 @MapKey 指定 map 的 key 值。这里我们自定义一个接口
public interface DemoMapper {
//返回一条记录的map, 此时 key 就是 列名,值就是对应的值
Map<String, Object> selectAll(Integer id);
/**
* 若此处将 map 中的 key 的类型改为其他类型,不影响 @MapKey 给 map 的 key 赋值
*/
@MapKey("name") //指定数据库中任意唯一字段作为map的key, 只要能保证唯一性,可以是ID, 也可以是其他字段,比如这里 name 唯一不重复
Map<String, Map<String, Object>> select();
}
- 在映射文件XML配置方法
<!-- Map<String,Object> selectAll(Integer id); -->
<select id="selectAll" parameterType="Integer" resultType="java.util.Map">
select id , money from account where id=#{id}
</select>
<!-- Map<String,Map<String,Object>> select(); -->
<select id="select" resultType="java.util.Map">
select id,name,money from account
</select>
- 在Junit方法里进行测试
@Before
public void init() throws IOException {
//1.读取配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
factory=builder.build(in);
//3.使用工厂生产SqlSession对象
session= factory.openSession();
}
@After
public void after() throws IOException {
session.close();
in.close();
}
- map 的 value 是一个 java 类时的写法
@Test
public void selectTest(){
IAccountDao mapper = session.getMapper(IAccountDao.class);
Map<String, Object> map = mapper.selectAll(1);
System.out.println(map);
}
5. map 的 value 是一个 map 类时的写法
@Test
public void selectTest2(){
IAccountDao mapper = session.getMapper(IAccountDao.class);
Map<String, Map<String, Object>> map = mapper.select();
System.out.println(map);
}
更多推荐
已为社区贡献1条内容
所有评论(0)