一对多
实体类
package com.wzx.pojo;
import java.util.List;
public class Customer {
private Integer id;
private String name;
private Integer age;
//该客户名下的所有订单的集合
private List ordersList;
public Customer() {
}
public Customer(Integer id, String name, Integer age, List ordersList) {
this.id = id;
this.name = name;
this.age = age;
this.ordersList = ordersList;
}
@Override
public String toString() {
return "Customer{" +
"id=" + id +
", name='" + name + ''' +
", age=" + age +
", ordersList=" + ordersList +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public List getOrdersList() {
return ordersList;
}
public void setOrdersList(List ordersList) {
this.ordersList = ordersList;
}
}
package com.wzx.pojo;
public class Orders {
private Integer id;
private String orderNumber;
private Double orderPrice;
//关联下次订单的客户信息,多方持有一方的对象
private Customer customer;
@Override
public String toString() {
return "Orders{" +
"id=" + id +
", orderNumber='" + orderNumber + ''' +
", orderPrice=" + orderPrice +
", customer=" + customer +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Double getOrderPrice() {
return orderPrice;
}
public void setOrderPrice(Double orderPrice) {
this.orderPrice = orderPrice;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Orders(Integer id, String orderNumber, Double orderPrice, Customer customer) {
this.id = id;
this.orderNumber = orderNumber;
this.orderPrice = orderPrice;
this.customer = customer;
}
public Orders() {
}
}
接口
package com.wzx.mapper;
import com.wzx.pojo.Customer;
public interface CustomerMapper {
//根据客户的id查询客户所有信息并同时查询该客户名下的所有订单
Customer getById(Integer id);
}
接口实现
select c.id cid,name,age,o.id oid,orderNumber,orderPrice,customer_id from customer c left join orders o on c.id=o.customer_id where c.id=#{id}
测试类
public class MyTest {
SqlSession sqlSession;
CustomerMapper customerMapper;
OrdersMapper ordersMapper;
@Before
public void openSqlSession() throws IOException {
//读取核心配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//取出SqlSession对象
sqlSession = factory.openSession();
customerMapper = sqlSession.getMapper(CustomerMapper.class);
ordersMapper = sqlSession.getMapper(OrdersMapper.class);
}
@After
public void closeSqlSession() {
sqlSession.close();
}
@Test
public void getById() {
Customer byId = customerMapper.getById(3);
System.out.println(byId);
}
多对一
接口类
package com.wzx.mapper;
import com.wzx.pojo.Orders;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface OrdersMapper {
//根据主键查订单,并同时查询下此订单的客户信息
Orders getById(Integer id);
}
接口实现
测试类
@Test
public void getById1() {
Orders byId = ordersMapper.getById(11);
System.out.println(byId);
}



