1、数据库建表语句
CREATE TABLE `user` (
`id` int(11) DEFAULT NULL,
`username` varchar(50) DEFAULT NULL
);
CREATE TABLE `orderinfo` (
`id` int(11) DEFAULT NULL,
`ordertime` datetime DEFAULT NULL,
`total` decimal(8,2) DEFAULT NULL,
`uid` int(11) DEFAULT NULL
);
2、实体
public class UserInfo {
private Integer id;
private String username;
private List<OrderInfo> orderInfoList;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public List<OrderInfo> getOrderInfoList() {
return orderInfoList;
}
public void setOrderInfoList(List<OrderInfo> orderInfoList) {
this.orderInfoList = orderInfoList;
}
@Override
public String toString() {
return "UserInfo{" +
"id=" + id +
", username='" + username + '\'' +
", orderInfoList=" + orderInfoList +
'}';
}
}
public class OrderInfo {
private Integer id;
private Date ordertime;
private Double total;
private Integer uid;
private UserInfo user;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getOrdertime() {
return ordertime;
}
public void setOrdertime(Date ordertime) {
this.ordertime = ordertime;
}
public Double getTotal() {
return total;
}
public void setTotal(Double total) {
this.total = total;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public UserInfo getUser() {
return user;
}
public void setUser(UserInfo user) {
this.user = user;
}
@Override
public String toString() {
return "OrderInfo{" +
"id=" + id +
", ordertime=" + ordertime +
", total=" + total +
", uid=" + uid +
", user=" + user +
'}';
}
}
3、Mapper 接口java代码
public interface UserMapper {
@Select("select * from user")
@Results({
@Result(property = "id",column = "id"),
@Result(property = "username",column = "username"),
@Result(property = "orderInfoList",column = "id",javaType = List.class,
many = @Many(select = "com.deppon.mapper.OrderMapper.findOrderListByUid"))
})
public List<UserInfo> findAll();
}
public interface OrderMapper {
@Results({
@Result(property = "id",column = "id"),
@Result(property = "ordertime",column="ordertime"),
@Result(property = "total",column="total"),
@Result(property = "user",column = "uid",javaType = UserInfo.class,
one = @One(select = "com.deppon.mapper.UserMapper.findUserById"))
})
@Select("select * from orderinfo where uid = #{id}")
List<OrderInfo> findOrderListByUid(Integer id);
}
4、测试类
public class TestOrderMapperUtil {
private OrderMapper orderMapper;
private UserMapper userMapper;
@Before
public void before() throws IOException {
String path = "SqlConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(path);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession(true);
orderMapper = session.getMapper(OrderMapper.class);
userMapper = session.getMapper(UserMapper.class);
}
@Test
public void test(){
List<UserInfo> userInfoList = userMapper.findAll();
for(UserInfo userInfo:userInfoList){
System.out.println(userInfo);
}
}
}