首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第2篇:数据库关系建模

其中前者将ER图映射为逻辑意义上的关系表,后者则映射为物理意义上的关系表。逻辑意义上的关系表可以理解为单纯意义上的关系表,它不涉及到表中字段数据类型,索引信息,触发器等等细节信息。...确切来说,也就是ER模型到逻辑关系表的映射是如何完成的。 基本概念 在开始进行ER模型到逻辑关系表的具体映射之前,首先来学习一下逻辑模型中所涉及到的一些概念。 1....一对多(1:M)联系的映射 这类映射的规则为:在由1:M联系中属于M侧的实体所映射得到的关系中设置一个外码,这个外码对应于由1侧的实体映射得到的关系中的主码。 如下ER模型: ? 将映射为关系: ?...一对多(1:M)一元联系的映射 这类映射的规则为:实体映射得到的关系中包含一个外码,对应到关系自身的主码。 如下ER模型: ? 将映射为关系: ?...将映射为关系: ? 这里同样要注意外键名要避免和主键名重复。 13. 一对一(1:1)一元联系的映射 和上面第11条讲的一对多的一元联系映射规则完全相同,此处不再举例说明。 14.

1.7K61

Mybatis面试整理

当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定pojo 通过在查询的sql语句中定义字段名的别名 通过来映射字段名和实体类属性名的一一对应的关系. 3....简述一下动态sql的执行原理 Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能,Mybatis提供了9种动态sql标签trim|where...Mybatis不仅可以执行一对一、一对多的关联查询,还可以执行多对一,多对多的关联查询,多对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;多对多查询,其实就是一对多查询...Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复 不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复;毕竟namespace...Mybatis对象关联实例: 在单表查询中,属性名和数据库相同的字段可以省略,多表不可省略,省略则为空 // 一对一

2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mybatis面试题(总结最全面的面试题!!!)

    sql注入: mybatis是如何做到防止sql注入的 底层实现原理 结论: 什么是数据持久化? 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。...使用#{}可以有效的防止SQL注入,提高系统安全性。 当实体类中的属性名和表中的字段名不一样,怎么办? 第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。...第2种: 通过 “ 来映射字段名和实体类属性名的一一对应的关系。 模糊查询like语句该怎么写? 第1种:在Java代码中添加sql通配符。...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,...mybatis是如何防止SQL注入的?

    3.6K20

    mybatis练习题

    缺点: SQL 语句的编写工作量较大,尤其当字段多.关联表多时,对开发人员 编写 SQL 语句的功底有一定要求。 SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...使 用#{}可以有效的防止 SQL 注入,提高系统安全性 Mybatis 是如何将SQL 执行结果封装为目标对象并返回的?都有哪些映射形式?...有哪些动 sql? Mybatis 动态 SQL 可以在 Xml 映射文件内,以标签的形式编写动态 sql, 执行原理是根据表达式的值 完成逻辑判断并动态拼接 sql 的功能。...联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先 查一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据...答:Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延 迟加载,association 指的就是一对一,collection 指的就是一对多查询。

    5510

    MyBatis基础面试题及答案

    答: 1)Mybatis 动态 sql 可以让我们在 Xml 映射文件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql的功能。...答:能,Mybatis 不仅可以执行一对一、一对多的关联查询,还可以执行多对一,多对多的关联查询,多对一查询,其实就是一对一查询,只需要把selectOne()修改为 selectList()即可;多对多查询...20、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo? 答: 1)通过在查询的 sql 语句中定义字段名的别名。...有了namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然也就不同。 25、Mybatis 中如何执行批处理?...答: 1)有接口绑定,包括注解绑定 sql 和 xml 绑定 Sql 2)动态 sql 由原来的节点配置变成 OGNL 表达式 3)在一对一,一对多的时候引进了association,在一对多的时候引入了

    3.5K30

    Mybatis常见面试题(10个必备面试题)

    当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 在mapper中如何传递多个参数? 一对一、一对多的关联查询? 面试题一:什么是Mybatis?...(2)缺点: ① SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。 ② SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...面试题七:Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 第一种是使用标签,逐一定义数据库列名和对象属性名之间的映射关系。...有哪些动态sql? Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断 并动态拼接sql的功能。...、一对多的关联查询?

    3.2K21

    24道Mybatis常见面试题总结及答案!

    3.MyBatis框架的缺点: 1.SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。...使用#{}可以有效的防止SQL注入,提高系统安全性。 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断并动态拼接sql的功能。...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,...答:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。

    1.4K70

    【知识】实体关系图(ERD)的定义和绘制

    实体关系图广泛用于设计关系数据库。ER模式中的实体成为表,属性和转换的数据库模式。由于它们可用于可视化数据库表及其关系,因此它通常也用于数据库故障排除。...当在ERD中出现时,实体团队和玩家以一对多的关系相互连接。 在ER图中,基数表示为连接器两端的鱼尾纹。三种常见的基本关系是一对一、一对多和多对多。...注意,在物理ERD中,多对多关系被分割为一对一对多关系。在下一节中,您将了解什么是物理ERD。...例如,“多对多”表可能存在于逻辑或物理数据模型中,但在概念数据模型中,它们只是作为没有基数的关系显示。...您必须清楚在适当的细节级别开发ER关系图的目的(有关更多细节,请阅读“概念、逻辑和物理数据模型”一节) 确保您清楚要建模的范围。 了解建模范围可以防止在设计中包含冗余实体和关系。

    5K70

    快速搞定MyBatis面试题

    SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。 SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...有哪些动态 SQL? MyBatis 动态 SQL 可以在 XML 映射文件内,以标签的形式编写动态 SQL,执行原理是根据表达式的值 完成逻辑判断并动态拼接 SQL 的功能。...XML 映射文件中,不同的 XML 映射文件,id 是否可以重复?...联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据...MyBatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association 指的就是一对一,collection 指的就是一对多查询。

    1K20

    后端技术:MyBatis 知识点整理,值得收藏!

    如何执行批量插入? 如何获取自动生成的(主)键值? 在 mapper 中如何传递多个参数? Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?...一对一、一对多的关联查询 ? MyBatis 实现一对一有几种方式?具体怎么操作的? Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?...MyBatis 框架的缺点 SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。...使用#{}可以有效的防止 SQL 注入,提高系统安全性。 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...而 Mybatis在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。 一对一、一对多的关联查询 ?

    1.1K10

    持久层框架中是什么让你选择 MyBatis?

    为了简化重复逻辑,提高代码的可维护性,可以将上述重复逻辑封装到一个类似 DBUtils 的工具类中,在使用时只需要调用 DBUtils 工具类中的方法即可。...在 Java 这种纯面向对象的语言中,两个 Java 对象之间可能存在一对一、一对多或多对多等复杂关联关系。...在 Java 程序中,可以在 Customer 类中添加一个 List 类型的字段来维护这种一对多的关系;在数据库中,可以在订单表(t_order)中添加一个 customer_id 列作为外键,指向顾客表...(t_customer)的主键 id,从而维护这种一对多的关系,如下图所示:图片关系模型中的一对多和对象模型中的一对多在 Hibernate 中,可以通过如下 Customer.hbm.xml 配置文件将这两种关系进行映射...,当然,也能够实现一对一、一对多、多对多关系映射以及相应的双向关系映射。

    50830

    数据库原理及应用

    实体内部的联系通常是指组成实体的各属性之间的联系 实体之间的联系通常是指不同实体集之间的联系,(有一对一,一对多,多对多等多种类型),实体之间的联系可用 E - R 图 表示一个实例: 用 E - R...,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 注:外模式的地位:介于模式与应用之间 模式与外模式的关系:一对多 外模式通常是模式的子集 一个数据库可以有多个外模式。...反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 外模式与应用的关系:一对多 同一外模式也可以为某一用户的多个应用系统所使用...(1)单一的数据结构 — 关系 关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。...投影 projection 投影操作主要是从列的角度进行运算,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行) 选择列 ⚠ 注意:投影操作会去除列中的重复行 ** 示例:**

    89810

    2020面试还搞不懂MyBatis?快看看这27道面试题!(含答案和思维导图)

    它与全自动的区别在哪里? 19、 一对一、一对多的关联查询 ? 20、MyBatis 实现一对一有几种方式?具体怎么操作的? 21、MyBatis 实现一对多有几种方式,怎么操作的?...3、MyBatis 框架的缺点: (1)SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL 语句的功底有一定要求。...使用#{}可以有效的防止 SQL 注入,提高系统安全性。 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...而 Mybatis在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。 19、 一对一、一对多的关联查询 ?...联合查询是几个表联合查询,只查询一次,通过在resultMap 里面的 collection 节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键 id,去再另外一个表里面查询数据

    91220

    关系型数据库设计小结

    对于每一个表,我们需要选择一列(或者多列)作为主键(primary key)。 关于主键 在关系模型中,表不可以含有重复的行,否则会导致检索出现歧义。...表间关系的类型有如下三种: 一对多(one-to-many) 多对多(many-to-many) 一对一(one-to-one) 一对多 考虑一个族谱关系的例子,一个母亲可能会有0个或多个小孩,但是任意一个小孩都有且只有一个母亲...这样的关系便称为一对多。 一对多的关系不能只用一个表来保存。为什么?...这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。...后记 总结一下,在关系数据库设计中,我们首先要明确设计的最终目标,再根据目标决定哪些数据要持久化存储; 对于这些数据, 要按照功能和逻辑来进行拆分,并且存放在不同的表中,并且明确之间的关系; 对于设计好的表

    2.4K40

    Mybatis 的常见面试题「建议收藏」

    2、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...6、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 答:第一种是使用标签,逐一定义列名和对象属性名之间的映射关系。...有了列名与属性名的映射关系后,Mybatis通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。 7、如何执行批量插入?...都有哪些动态sql?能简述一下动态sql的执行原理不? Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。...而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 13、 一对一、一对多的关联查询 ?

    48920

    20+ 道常见的 MyBatis 面试题

    3、MyBatis框架的缺点: SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。 SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...使用#{}可以有效的防止SQL注入,提高系统安全性。 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 第1种:通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。...有哪些动态sql? Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断并动态拼接sql的功能。...而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 19、 一对一、一对多的关联查询 ?...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,

    56710

    Mybatis常见面试题总结及答案

    3、MyBatis框架的缺点: 1、SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。...使用#{}可以有效的防止SQL注入,提高系统安全性。 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 第1种:通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。...有哪些动态sql? Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值 完成逻辑判断并动态拼接sql的功能。...而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 19、 一对一、一对多的关联查询 ?...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,

    68920

    最新38道Java面试题解析(MyBatis+消息队列+Redis)

    SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求; 2. SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...但是灵活的前提是 MyBatis 无法做到数据库无关性,如果需要实现支持多种数据库的软件,则需要自定义多套 SQL 映射文件,工作量大。 四、MyBatis 中 #{} 和 ${}的区别是什么?...号,调用 PreparedStatement 的 set 方法来赋值;使用 #{} 可以有效的防止 SQL 注入,提高系统安全性;2....Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association 指的就是一对一,collection 指的就是一对多查询。...2、消息队列的优缺点有哪些? 3、如何保证消息队列的高可用? 4、如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 5、如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

    71110

    【数据库系统概论】

    实体内部的联系: 是指组成实体的各属性之间的联系 实体之间的联系: 通常是指不同实体集之间的联系 实体之间的联系有一对一(1:1)、一对多(1:n)和多对多(m:n)等多种类型 实体-联系方法(Entity-Relationship...例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。...关系特有操作(重点) 初学者可能觉得这个不重要,会写sql就行了; 但是实际上,关系代数运算,在优化中用的非常多。必须熟练掌握 选择 按行查询 查询信息系(IS系)全体学生。...建立临时关系 K: Cno 1 3 πSno,Cno (SC)÷K 问题记录 概念模型,逻辑模型,物理模型,分别站在三个世界看 1. 如何理解数据独立性中的逻辑独立性 查看1.3 2....如何理解“关系” 关系是一张表,一开始一直无法理解这句话。 表本身哪里来的关系? 这个关系不是指某某之间具有联系,而是“将一堆东西放在一起,建立起联系,这堆东西,称为关系”。

    1.4K10

    Mybatis常见面试题总结

    (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能...(2)缺点: ① SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。 ② SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。...Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。...、一对多的关联查询 ?...联合查询是几个表联合查询,只查询一次,通过在resultMap里面的collection节点配置一对多的类就可以完成;嵌套查询是先查一个表,根据这个表里面的 结果的外键id,去再另外一个表里面查询数据,

    99521
    领券