需求:
例如从数据库user表和orders表查询用户ID为某个值的用户的名称,订单创建日期等
Sql:
SELECT u.username,o.id,o.createtime FROM user u,orders o WHERE u.id=o.user_id
连接查询,查询的结果不能使用一个完整的实体类接收,这个时候可以考虑使用map接收。
开发:
1:接口编写:
public Map<String, Object> queryUserOrderInfo(int userId);
2:UserMapper.xml配置:
<?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.sea.crm.mapper.UserMapper">
<!--根据用户的ID查询->
<select id="queryUserOrderInfo" parameterType="int" resultType="map">
SELECT u.username,o.id,o.createtime FROM USER u,orders o WHERE u.id=o.user_id and u.id=#{id}
</select>
</mapper>
3:单元测试
@Test
public void testqueryUserOrderInfo() {
SqlSession session = factory.openSession();
userMapper = session.getMapper(UserMapper.class);
Map<String, Object> map = userMapper.queryUserOrderInfo(10);
System.out.println(map);
}