06_一对一和一对多
一. 一对一关系
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_一对一和一对多相关推荐
- mybatis的面试一对一,一对多,多对多的mapper.xml配置
使用springboot完成一对一,一对多: https://blog.csdn.net/KingBoyWorld/article/details/78966789 传统的mapper文件中的一对一, ...
- mybatis入门(六)----高级映射(一对一,一对多,多对多)
阅读目录 一:订单商品数据模型 二.一对一查询 三.一对多查询 四.多对多查询 回到顶部 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: View Code 测试数据代码: View C ...
- mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析
推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...
- Java初学者疑难杂症之:一对一和一对多的关系
2019独角兽企业重金招聘Python工程师标准>>> [威哥说]作为一个程序员,我们每天都在"搞"对象,额,"用"对象,感觉那个词都不太好, ...
- django orm级联_Django数据表关联关系映射(一对一、一对多、多对多)
我们知道涉及到数据表之间的对应关系就会想到一对一.一对多.多对多,在学习 MySQL 数据库时表关系设计是需要重点掌握的知识.Django 中定义了三种关系类型的字段用来描述数据库表的关联关系:一对多 ...
- 联合查询是要多创建一个实体类么_[译] 如何用 Room 处理一对一,一对多,多对多关系?...
原文作者:Florina Muntenescu 原文地址: medium.com/androiddeve- 译者:秉心说 译者说:最近在做一款 Rss 阅读器,使用 Room 存储订阅源以及其中的文章 ...
- mybatis 一对一与一对多collection和association的使用
在mybatis如何进行一对一.一对多的多表查询呢?这里用一个简单的例子说明. 一.一对一 1.association association通常用来映射一对一的关系,例如,有个类user,对应的实体 ...
- 九、多表模型创建,一对一,一对多,基于对像的多表模型等
环境: django1.9环境: settings.py,注释csrf,并且设置使用mysql数据库 数据库的对应关系图: 一.多表模型创建,一对多增删改查,多对多增删改查 一对多: models.p ...
- 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)
视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...
最新文章
- Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
- matlabfor循环语句举例_笨办法学python(七)条件、选择和循环
- python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...
- leetcode 151. 翻转字符串里的单词
- Java开发学习--MongoDB
- node JS 微信开发
- 一、Vue基础语法学习笔记系列——插值操作(Mustache语法、v-once、v-html、v-text、v-pre、v-cloak)、绑定属性v-bind(绑定class、style)、计算属性
- Matlab guide菜单+快捷菜单的使用
- IDEA—使用技巧总结 [持续更新... ...]
- linux下实现web数据同步的四种方式(性能比较)
- FreeMarker标签使用
- [PTA]实验7-2-5 判断上三角矩阵
- Excel VBA-批量导出图片.vba
- 数学建模--正态分布均值的假设检验
- [转载]JS的IE和Firefox兼容性汇编(原作:hotman_x)
- [玩法/技巧] Transmission 3.0 降级到 2.94 恢复数据的方法
- Office 2010 安装程序包的语言不受系统支持
- Error launching application on iPhone 11 Pro Max.
- 把计算机知识列表合为一列,怎么把相同表格的数据合并
- 关于IP网络号和主机号的原理
热门文章
- [工具]各种截图工具和录屏软件
- 雅虎宣布关闭旗下7个数字杂志
- Linux基础系列(六)Linux系统定时任务Crond
- jquery ui 自動完成對中文字搜尋Bug(firefox)
- 为何我通过 Calendar1.SelectedDate.DayOfWeek.ToString() 获取的“星期”总是英文的???...
- 让服务器接近最终用户能解决性能问题吗?——微云网络
- 【指标统计】本区或跨区取WEB统计指标配置方法
- C2146和C4430错误:循环引用错误
- 微信小程序-01-项目组成文件介绍(入门篇)
- WPF入门教程系列十九——ListView示例(一)