一. 一对一关系

1. 一对一的实体类

2. 一对一映射配置

二. 一对多关系

1. 一对多的实体类

2. 一对多映射配置

二. 一对一和一对多关系例子

1. 新建一个名为AssociationCollection的Java工程, 拷入相关jar包

2. 新建User.java

package com.lywgames.domain;import java.util.Date;public class User {private Integer id;private String name;private String sex;private Date birthday;private String address;public User() {  }public User(String name, String sex, Date birthday, String address) {this.name = name;this.sex = sex;this.birthday = birthday;this.address = address;}public User(Integer id, String name, String sex, Date birthday, String address) {this.id = id;this.name = name;this.sex = sex;this.birthday = birthday;this.address = address;}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 String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", birthday=" + birthday + ", address=" + address+ "]";}}

3. 新建Order.java

package com.lywgames.domain;import java.io.Serializable;
import java.sql.Timestamp;public class Order implements Serializable {private static final long serialVersionUID = 1L;private Integer id;private Integer uid;private String number;private Timestamp createtime;public Order() { }public Order(Integer uid, String number, Timestamp createtime) {this.uid = uid;this.number = number;this.createtime = createtime;}public Order(Integer id, Integer uid, String number, Timestamp createtime) {this.id = id;this.uid = uid;this.number = number;this.createtime = createtime;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getUid() {return uid;}public void setUid(Integer uid) {this.uid = uid;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public Timestamp getCreatetime() {return createtime;}public void setCreatetime(Timestamp createtime) {this.createtime = createtime;}@Overridepublic String toString() {return "Order [id=" + id + ", number=" + number + ", createtime=" + createtime + "]";}
}

4. 新建OrderDetail.java

package com.lywgames.domain;import java.io.Serializable;/*** 订单详情* 一个订单对应一个用户*/
public class OrderDetail implements Serializable {private static final long serialVersionUID = 1L;private User user;private Order order;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public Order getOrder() {return order;}public void setOrder(Order order) {this.order = order;}@Overridepublic String toString() {return "OrderDetail [\r\n\t" + user + ",\r\n\t" + order + "\r\n]";}
}

5. 新建UserOrderList.java

package com.lywgames.domain;import java.io.Serializable;
import java.util.List;/*** 用户订单列表* 一个用户对应多个订单*/
public class UserOrderList implements Serializable {private static final long serialVersionUID = 1L;private User user;private List<Order> orderList;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public List<Order> getOrderList() {return orderList;}public void setOrderList(List<Order> orderList) {this.orderList = orderList;}@Overridepublic String toString() {String ol = "";for (Order order : orderList) {ol += ",\r\n\t" + order;}return "UserOrderList [\r\n\t" + user + ol + "\r\n]";}
}

6. 新建UserMapper.java

package com.lywgames.dao;import com.lywgames.domain.OrderDetail;
import com.lywgames.domain.UserOrderList;public interface UserMapper {public OrderDetail selectOrderDetailByOrderId(Integer id);public UserOrderList selectUserOrderListByUserId(Integer id);
}

7. 在和UserMapper.java接口同一目录下新建UserMapper.xml映射文件

7. 在和UserMapper.java接口同一目录下新建UserMapper.xml映射文件

9. 在src目录下新建SqlMapConfig.xml数据库配置文件

10. 新建Test.java

package com.lywgames;import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.lywgames.dao.UserMapper;
import com.lywgames.domain.OrderDetail;
import com.lywgames.domain.UserOrderList;public class Test {public static void main(String[] args) {SqlSession sqlSession = null;try {// 指定全局配置文件String resource = "SqlMapConfig.xml";// 读取配置文件InputStream inputStream = Resources.getResourceAsStream(resource);// 构建sqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获取sqlSessionsqlSession = sqlSessionFactory.openSession();UserMapper um = sqlSession.getMapper(UserMapper.class);OrderDetail od = um.selectOrderDetailByOrderId(1);System.out.println("----------一对一----------");System.out.println(od);UserOrderList uol = um.selectUserOrderListByUserId(4);System.out.println("----------一对多----------");System.out.println(uol);} catch (Exception e) {e.printStackTrace();} finally {if(sqlSession != null) {// 释放资源sqlSession.close();}}}
}

11. 查看user表数据

12. 查看order表数据

13. 运行项目

06_一对一和一对多相关推荐

  1. mybatis的面试一对一,一对多,多对多的mapper.xml配置

    使用springboot完成一对一,一对多: https://blog.csdn.net/KingBoyWorld/article/details/78966789 传统的mapper文件中的一对一, ...

  2. mybatis入门(六)----高级映射(一对一,一对多,多对多)

    阅读目录 一:订单商品数据模型 二.一对一查询 三.一对多查询 四.多对多查询 回到顶部 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: View Code 测试数据代码: View C ...

  3. mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析

    推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...

  4. Java初学者疑难杂症之:一对一和一对多的关系

    2019独角兽企业重金招聘Python工程师标准>>> [威哥说]作为一个程序员,我们每天都在"搞"对象,额,"用"对象,感觉那个词都不太好, ...

  5. django orm级联_Django数据表关联关系映射(一对一、一对多、多对多)

    我们知道涉及到数据表之间的对应关系就会想到一对一.一对多.多对多,在学习 MySQL 数据库时表关系设计是需要重点掌握的知识.Django 中定义了三种关系类型的字段用来描述数据库表的关联关系:一对多 ...

  6. 联合查询是要多创建一个实体类么_[译] 如何用 Room 处理一对一,一对多,多对多关系?...

    原文作者:Florina Muntenescu 原文地址: medium.com/androiddeve- 译者:秉心说 译者说:最近在做一款 Rss 阅读器,使用 Room 存储订阅源以及其中的文章 ...

  7. mybatis 一对一与一对多collection和association的使用

    在mybatis如何进行一对一.一对多的多表查询呢?这里用一个简单的例子说明. 一.一对一 1.association association通常用来映射一对一的关系,例如,有个类user,对应的实体 ...

  8. 九、多表模型创建,一对一,一对多,基于对像的多表模型等

    环境: django1.9环境: settings.py,注释csrf,并且设置使用mysql数据库 数据库的对应关系图: 一.多表模型创建,一对多增删改查,多对多增删改查 一对多: models.p ...

  9. 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)

    视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...

最新文章

  1. Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
  2. matlabfor循环语句举例_笨办法学python(七)条件、选择和循环
  3. python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...
  4. leetcode 151. 翻转字符串里的单词
  5. Java开发学习--MongoDB
  6. node JS 微信开发
  7. 一、Vue基础语法学习笔记系列——插值操作(Mustache语法、v-once、v-html、v-text、v-pre、v-cloak)、绑定属性v-bind(绑定class、style)、计算属性
  8. Matlab guide菜单+快捷菜单的使用
  9. IDEA—使用技巧总结 [持续更新... ...]
  10. linux下实现web数据同步的四种方式(性能比较)
  11. FreeMarker标签使用
  12. [PTA]实验7-2-5 判断上三角矩阵
  13. Excel VBA-批量导出图片.vba
  14. 数学建模--正态分布均值的假设检验
  15. [转载]JS的IE和Firefox兼容性汇编(原作:hotman_x)
  16. [玩法/技巧] Transmission 3.0 降级到 2.94 恢复数据的方法
  17. Office 2010 安装程序包的语言不受系统支持
  18. Error launching application on iPhone 11 Pro Max.
  19. 把计算机知识列表合为一列,怎么把相同表格的数据合并
  20. 关于IP网络号和主机号的原理

热门文章

  1. [工具]各种截图工具和录屏软件
  2. 雅虎宣布关闭旗下7个数字杂志
  3. Linux基础系列(六)Linux系统定时任务Crond
  4. jquery ui 自動完成對中文字搜尋Bug(firefox)
  5. 为何我通过 Calendar1.SelectedDate.DayOfWeek.ToString() 获取的“星期”总是英文的???...
  6. 让服务器接近最终用户能解决性能问题吗?——微云网络
  7. 【指标统计】本区或跨区取WEB统计指标配置方法
  8. C2146和C4430错误:循环引用错误
  9. 微信小程序-01-项目组成文件介绍(入门篇)
  10. WPF入门教程系列十九——ListView示例(一)