Mapper.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="ixiongyu.service.OrdersCustomMapper">
<resultMap id="OrdersUserResalutMap" type="ixiongyu.model.Orders">
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="number" property="number"/>
<result column="createtime" property="createtime"/>
<result column="note" property="note"/>
<association property="user" javaType="ixiongyu.model.User">
<id column="user_id" property="id"/>
<result column="username" property="username"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
</association>
</resultMap>
<select id="findOrdersUserMap" resultMap="OrdersUserResalutMap">
SELECT
o.*,
u.username,
u.sex,
u.address
FROM user u, orders o
WHERE u.id = o.user_id;
</select>
<select id="findOrdersUser" resultType="ixiongyu.model.OrdersCustom">
SELECT
o.*,
u.username,
u.sex,
u.address
FROM user u, orders o
WHERE u.id = o.user_id;
</select>
</mapper>
User.java
import lombok.Data;
//没有getter和setter是因为使用了lombok
@Data
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
}
Orders.java
@Data
public class Orders {
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
private User user;
}
OrdersCustomMapperImplTest.java
public class OrdersCustomMapperImplTest {
private OrdersCustomMapper ordersCustomMapper;
@Before
public void before() throws Exception {
String resource = "mybatis-config.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
ordersCustomMapper = sqlSession.getMapper(OrdersCustomMapper.class);
}
@After
public void after() throws Exception {
}
/**
* Method: findOrdersUser()
*/
@Test
public void testFindOrdersUser() throws Exception {
List<OrdersCustom> ordersUser = ordersCustomMapper.findOrdersUser();
ordersUser.forEach(System.out::println);
//TODO: Test goes here...
}
@Test
public void findOrdersUserMap() throws Exception
{
List<Orders> ordersUserMap = ordersCustomMapper.findOrdersUserMap();
for (Orders orders : ordersUserMap) {
System.out.println(orders);
}
ordersUserMap.forEach((o -> System.out.println(o.getUser().getUsername())));
}
}
OrdersCustomMapper.java
public interface OrdersCustomMapper {
List<OrdersCustom> findOrdersUser() throws Exception;
List<Orders> findOrdersUserMap() throws Exception;
}