Mybatis-查询结果返回一个Map

一、返回一个字段名为键对应字段的值为值的Map
(1)Mapper文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wsh.mapper.UserMapper">
    <select id="selectUserMap" parameterType="Long" resultType="Map">
        select * from user where id = #{id}
    </select>
</mapper>

(2)接口文件

public interface UserMapper {
    public Map<String, Object> selectUserMap(Long id);
}

(3)JAVA文件

	public void test() throws IOException {
        //读取配置文件创建SqlSession工厂
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //利用SqlSession工厂创建SqlSession实例
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            //利用SqlSession创建代理对象
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //让代理对象帮我们执行查询
            Map<String, Object> mp = mapper.selectUserMap(1L);
            for (Map.Entry<String, Object> entry : mp.entrySet()) {
                System.out.println(entry.toString());
                /*
                password=123
				last_name=a
				id=1
                */
            }
        }finally {
            sqlSession.close();
        }
    }

(4)结果返回(键,值)=(字段名,字段对应的值)

二、返回一个字段的值为键对应结果对象为值的Map
(1)Mapper文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wsh.mapper.UserMapper">
    <select id="selectUserMap" resultType="User">
        select * from user
    </select>
</mapper>

(2)接口文件

public interface UserMapper {
    @MapKey("id")
    public Map<Long, User> selectUserMap();
}

(3)JAVA文件

	public void test() throws IOException {
        //读取配置文件创建SqlSession工厂
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //利用SqlSession工厂创建SqlSession实例
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            //利用SqlSession创建代理对象
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //让代理对象帮我们执行查询
            Map<Long, User> mp = mapper.selectUserMap();
            for (Map.Entry<Long, User> entry : mp.entrySet()) {
                System.out.println(entry.toString());
                /*
                1=User{id=1, lastName='a', password='123'}
				2=User{id=2, lastName='b', password='123'}
				3=User{id=3, lastName='c', password='123'}
                */
            }
        }finally {
            sqlSession.close();
        }
    }

(4)结果返回(键,值)=(字段的值,对应结果对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值