您的位置:首页 > 其它

MyBatis中resultMap和resultType的使用

2017-05-08 19:18 447 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis