关联关系

设计模式总结(一) 类之间的关系

让人想犯罪 __ 提交于 2019-12-18 15:41:58
文章目录 类之间的关系 (一)关联关系 1.双向关联 2.单向关联 3.自关联 4.多重性关联 5.聚合关系 6.组合关系 (二)依赖关系 (三)泛化关系 (四)接口与实现关系 类之间的关系 (一)关联关系 关联关系(Association)是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一对象之间有关系,如汽车和轮胎、师傅和徒弟、班级和学生等。 1.双向关联 默认情况下,关联是双向的。例如,顾客(Class14)购买商品(Class15)并拥有商品;反之,卖出的商品总有某个顾客与之相关联。 该关联关系如下图所示,用无箭头实线表示。 2.单向关联 关联也可以是单向的。例如,顾客(Class1)拥有地址(Class2),则顾客类与地址类具有单向关联关系。 该关联关系如下图所示,用带箭头实线表示。 3.自关联 存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。例如,一个节点类的成员又是节点对象。 该关联关系如下图所示,用带箭头实线指向自身表示。 4.多重性关联 也称为重数性关联关系,表示一个类的对象与另一个类的对象连接的个数,可以在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。例如,一个界面对象(Class16)可以拥有多个按钮对象(Class17),而一个按钮只能对应一个界面。 该关联关系如下图所示,用带箭头实线且线上标有数字表示。

JPA关联关系

若如初见. 提交于 2019-12-11 14:12:07
1. 单向多对一(使用用户和订单为例) 使用注解: @ManyToOne 是属性或方法级别的注解,用于定义 源实体 与 目标实体 是多对一的关系 属性: targetEntity : 源实体 关联的 目标实体 类型,默认是该成员属性对应的类型,可以缺省 cascade :定义 源实体 和关联的 目标实体 间的级联关系。默认没有级联操作。可选值有: CascadeType.PERSIST :级联新建。若保存实体时,数据库中 没有与该实体相关联的实体 的那条记录,会在 保存实体 的同时 保存与之相关联的实体 CascadeType.REMOVE :级联删除。删除当前实体时,与它有映射关系的实体也会跟着被删除 CascadeType.REFRESH :级联刷新。在更新前重新获取数据。 使用场景:你先获取了数据,但是在保存时数据库的数据被修改了,这时候就需要重新获取一次数据(refresh),然后执行 update 操作 CascadeType.MERGE :级联更新。当当前实体的数据改变,会相应地更新关联的实体的数据 CascadeType.DETACH :级联脱管/游离操作。删除实体因为有外键无法删除时,撤销所有相关的外键关联,然后删除 @since Java Persistence 2.0 :表示从Java Persistence 2.0开始才有的这个可选值 CascadeType

编程思想总结

巧了我就是萌 提交于 2019-12-05 03:13:38
1.oop(Object Oriented Programming)面向对象程序设计   套话:封装,继承,多态(代码的表现形式);一切皆对象(感性的认知)   实用主义:用程序来实现一切事物及其之间的关系,体现全局观,而面向过程编程关注于每个实现的具体步骤流程。 2.bop(Bean Oriented Programming)面向bean编程   基于oop思想,对每一个对象的创建、关联关系等进行优雅的管理 3.aop(Aspect Oriented Programming)面向切面编程   对公共部分进行提炼,形成一个单独与业务无关的横切面的功能模块,比如日志、事务、鉴权,开发时将其隔离开来,运行时操作字节码再进行合并。 4.ioc(Inversion of Control)控制反转   控制权反转,控制对象创建的职责从开发人员转移到spring(BeanFactory),开发人员只需要拿来用。 5.di(Dependency Injection)依赖注入;dl(dependency lookup)依赖查找   对于每个对象的属性值或子对象的引用内容自动化赋值,本由开发人员做的赋值工作给spring去完成,能够保存对象与对象之间的关联关系,主要有三种赋值方式,构造方法注入,set赋值,直接赋值(反射,暴力强吻) 来源: https://www.cnblogs.com

MyBatis关联关系

别等时光非礼了梦想. 提交于 2019-12-04 04:25:52
MyBatis关联关系 1. 一对多关联关系 实体类配置 配置一对多关联关系映射 引用sql语句到java类 service测试类 测试结果代码 2. 多对多关联关系 实体类配置 配置多对多关联关系映射 引用sql语句到java类 service测试类 测试结果代码 1. 一对多关联关系 首先先用逆向生成工具生成t_hibernate_order、t_hibernate_order_item 这两张表对应的model与mapper 实体类配置 OrderVo package com . lin . model . vo ; import com . lin . model . Order ; import com . lin . model . OrderItem ; import java . util . ArrayList ; import java . util . List ; public class OrderVo extends Order { private List < OrderItem > orderItems = new ArrayList < > ( ) ; public List < OrderItem > getOrderItems ( ) { return orderItems ; } public void setOrderItems (

Mybatis 之 关联关系映射

帅比萌擦擦* 提交于 2019-12-04 04:21:55
Mybatis 之 关联关系映射 前言 一对多 多对多 前言 1.将数据表导入数据库中 2.通过 mybatis-generator 插件生成dao、mapper、model 1)配置 mybatis-generator 插件生成文件位置 2)修改 generatorConfig.xml 配置文件的生成目录(mapper和model)及对应生成关系 3.修改 Customer、Order 实体类 1)实现序列化接口 2)建立实体映射关联关系(一对多、多对一) #一对多:一个客户对应多个订单 private List<Order> orders=new ArrayList<Order>(); #多对一:多个订单对应一个客户(一个订单对应一个客户) private Customer customer; 4.配置 mybatis 关联映射 4.1 一对多 <resultMap id="one2many" type="Customer"> <id column="customer_id" property="customerId"/> <result column="customer_name" property="customerName"/> <!-- 一对多的关系 --> <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->

MyBatis之关联关系

梦想与她 提交于 2019-12-04 04:21:35
关联关系 在关系型数据库中,表与表之间很少是独立且没有关系的,大多数表都具有复杂的关系,一张表连接着多张表,在MyBatis中可以进行多表连接处理 关联关系中有1对1、1对多、多对多 1对1关系 我们有一张员工表(t_emp),一张部门表(t_dept)。员工表中的一条记录对应于部门表中有且仅有一条记录。这就是一对一的关联关系。 查询每个员工的信息及对应的部门信息 1、创建maven项目 在pom.xml文件中导入相关依赖 < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0.0 </ modelVersion > < groupId > com.zhouym </ groupId > < artifactId > mybatis-lazy </ artifactId > < version > 0.0.1-SNAPSHOT </ version > <

类与类之间的几种关系

匿名 (未验证) 提交于 2019-12-03 00:37:01
类与类之间的几种关系 在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系, 他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 一、实现关系 :表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作。在java中使用implements表示。 二、继承关系 :继承表示类与类(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。 三、组合关系 :相比于聚合,组合是一种耦合度更强的关联关系。 存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的; 并且“部分”单独存在时没有任何意义。 四、聚合关系: 聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的, 仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系, 他们之间是“整体-个体”的相互关系。 五、关联关系 :对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 六、依赖关系 :对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 看不太懂吧,没关系,去看看原文吧,里面有很通俗的解释,还有 UML图例哟。 参考0:

Hibernate<五> 级联和关系维护

点点圈 提交于 2019-11-30 15:03:55
1、Hibernate中的级联操作: 在Hibernate中,针对持久化实体的配置文件中有Cascade这样一个属性,就是级联,也就是说在操作当前实体时,针对当前实体的操作会影响到相应配置的关联实体,比如针对当前实体进行保存操作时,会同时保存于其关联的实体。常用的cascade: none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many)。 一般情况下,many-to-one,many-to-many不设置级联,在<one-to-one>和<one-to-many>中设置级联。 ①、在一对一关联关系中,当删除当前实体时,会同时级联删除关联实体,以解除两者的关联关系。 ②、在一对多关联关系中,当删除一方实体时,会同时级联删除多方实体,以解除两者的关联关系。 ③、在多对多关联关系中,根据我们对于多对多关联关系的不同处理情况,相应的级联删除行为会有所不同,如果将多对多的关联关系处理为两个一对多的关联关系时,也就是说存在一个中间实体用以表明两者的多对多关联关系,那么在删除其中一方实体时,相应的级联删除操作并不会直接删除中间实体,也就是两者的关联关系,而是在中间实体中将其中一方设置为null,这样两者的关联关系就相应的移除了

java--依赖、关联、聚合和组合之间区别的理解

有些话、适合烂在心里 提交于 2019-11-30 00:23:37
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 依赖(Dependency) 关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car)和房子(House),Person类依赖于Car类和House类的定义,因为Person类引用了Car和House。与关联不同的是,Person类里并没有Car和House类型的属性,Car和House的实例是以参量的方式传入到buy()方法中去的。一般而言,依赖关系在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。 关联(Association) 关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。 聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。 组合(Composition)

TP5 hasOne 和 belongsTo

天大地大妈咪最大 提交于 2019-11-29 13:59:34
一对一关系,存在主从关系(主表和从表 ),主表不包含外键,从表包含外键。 hasOne 和 belongsTo 都是一对一关系,区别: 在主表的模型中建立关联关系,用 hasOne 在从表模型中建立关联关系,用 belongsTo 转自 https://blog.csdn.net/github_37512301/article/details/75675054 http://www.cnblogs.com/xiaoliwang/p/9348950.html 来源: CSDN 作者: Oneshop商城 链接: https://blog.csdn.net/wsxc451/article/details/82456103