1.元数据映射在元数据中保持关系---对象映射的详细信息。大部分用来处理对象---关系映射的代码都描述了如何把数据库中的域对应到内存对象中的域。1.运行机制使用元数据映射最主要的决策是如何根据运行代码来表示元数据中的信息。有2种主要途径:代码生成和反射编程。使用代码生成时需要写这样一个程序:输入是元数据,输出是映射实现类的源代码。这些类看上去是手写的,但事实上完全是构建流程中生成的,通常恰好在编译前生成。产生的映射器类用服务器代码来部署。反射程序可能要求对象有一个名为setName的方法,然后通过传递适当的参数,在setName分发中运行一个调用方法。通过把方法(和域)视为数据,反射程序可以从元数据文件中读入域和方法的名字,并用它们实现映射。通常不建议用反射,部分原因是它慢,但主要原因是它往往会产生很难调试的代码。虽然这样,但实际上反射十分适用于数据库映射。代码生成缺乏动态性,因为任何对映射的修改都需要至少重新编译和重新部署软件的相关部分。对反射而言,只要改变映射数据文件,现在有的类就会使用新的元数据。反射编程通常会收到速度的困扰。大部分情况下可以用单独的文件格式保存元数据。当前,xml是一种流行的选择,因为它提供了层次化的结构,同时不必编写自己的语法分析器和其他工具。一个加载步骤会获得元数据并把它转变成编程语言结构,然后该结构驱动代码生成输出或反射映射。另外一种方法是在数据库中保存映射信息,这种方法是把映射信息和数据保存在一起。如果数据库方案发生变化,映射信息仍然保存不变。2.使用时机元数据映射能大大减少处理数据库映射所需的工作量。2.查询对象描述一次数据库查询的对象。查询对象是一个解释器,也就是说,它由多个对象组成的结构,该结构可以自身转化为一个sql查询。你可以通过引用类和域而不是表和列来创建这个查询。1.运行机制查询对象是解释器模式在表示sql查询上的应用。它的主要作用是使客户可以构造各种类型的查询,把那个把这些对象结构转换成适当的sql字符串。3.资源库协调领域和数据映射层,利用类似于集合的接口来访问领域对象。具有复杂领域模型的系统常常受益于一个层,比如由数据映射器提供的层,它分离了领域对象和数据库访问代码的细节。

13.企业应用架构模式 --- 对象-关系元数据映射模式相关推荐

  1. 第十三天-企业应用架构模式-对象-关系元数据映射模式

    元数据映射 (Metadata Mapping) 查询对象 (Query Object) 资源库 (Repository)

  2. Hibernate双向一对一对象关系模型映射

    一个员工一辆车:one-to-one 实现一:让汽车表中的外键唯一 1 create table emp 2 ( 3 eid int primary key auto_increment, 4 ena ...

  3. [201004][企业应用架构模式][王怀民][周斌][译]

    [201004][企业应用架构模式][王怀民][周斌][译] 模式列表 引言 0.1 架构 0.2 企业应用 0.3 企业应用的种类 0.4 关于性能的考虑 0.5 模式 0.5.1 模式的结构 0. ...

  4. 企业应用架构模式学习笔记

    1.概述 2.分层 表现逻辑处理用户与软件间的交互.表现层的主要职责是向用户显示信息并把从用户那里获取的信息解释成领域层或数据源层上的各种动作. 数据源逻辑主要关注与其他系统的交互,这些系统将代表应用 ...

  5. 学习笔记之什么是持久化和对象关系映射ORM技术

    ----------------本文转自:http://www.cppblog.com/javenstudio/articles/541.html--------------------- 何谓&qu ...

  6. SQLAlchemy 1.3文档中文版 - 对象关系指南

    SQLAlchemy 1.3文档中文版 - 对象关系指南(Object Relational Tutorial) 中文翻译:郭夫子(374jetko@sina.com) 英文原文地址:https:// ...

  7. 文献阅读课14-DIAG-NRE: A Neural Pattern Diagnosis Framework for远程监督关系抽取,模式标注去噪自动化,FN,FP,RL

    文章目录 abstract 1. Introduction 2.相关工作 3.方法 3.1 NRE Models 3.2 Pattern Extraction 3.3 Pattern Refinemen ...

  8. 对象关系映射(ORM)

      本文主要介绍 对象关系映射(ORM) 是什么,以及它的优缺点. 一.ORM 简介   面向对象是从软件工程基本原则(如耦合.聚合.封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两 ...

  9. java里面的环链怎么做_Java模式开发之责任链模式

    从前往后按照一定操作顺序进行  申明一个过滤器接口,里面有一个"方法申明" 叫 规则过滤,返回处理后的结果 申明一些具体的操作类,全部实现过滤器接口,重写里头规则过滤的方法,返回规 ...

  10. Windows编程中的映射模式和坐标转换

    From: http://www.vczx.com/article/show.php?id=1011820 一.Windows中的映射模式 1.Windows定义映射模式的目的 经过我的综合,Wind ...

最新文章

  1. DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁
  2. NVisionXR_iOS教程六 —— 场景中对象交互
  3. UA SIE545 优化理论基础4 对偶理论简介3 强对偶
  4. python转二进制字符串_python如何将二进制串(UTF-8)转换为字符串?
  5. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...
  6. python 窗口函数_太好用了!Python中8种流行的SQL窗口函数了解一下!
  7. matlab 绘花,【原创】使用matlab绘制菊花和玫瑰花
  8. python自定义包的发布与安装
  9. 生产环境下lnmp的权限说明
  10. 为什么说bagging是减少variance,而boosting是减少bias?
  11. 向android模拟器中复制文件报out of memory错误解决
  12. html中怎样设置放大功能,CSS如何设置图片放大效果?
  13. 中国文化和旅游部长:肯定《吴哥王朝》培养本地演员
  14. class path resource [bean1.xml] cannot be opened because it does not exist
  15. 差异性分析该如何选择?
  16. 计算机作业攒机单,计算机攒机作业.docx
  17. win10 开机无法自动连接或重启才能连接WIFI的简单解决方法/2022.03
  18. vue 竖向纵向仿表格 动态渲染表头表格 根据id填充单元格
  19. php处理emoji表情方法,PHP实战:3种方法轻松处理php开发中emoji表情的问题
  20. 终于有人把TCP/IP讲的明明白白了,搞懂真的不难,只需要看这一篇就够了

热门文章

  1. WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历)
  2. 译注(1): 为什么大多数编程语言里,= 号被用来做赋值操作符?
  3. python使用ip代理抓取网页
  4. javascript 计算后 无聊的小数点处理
  5. First flight, Let's do it!
  6. [js开源组件开发]js文本框计数组件
  7. 源码装置vsftpd
  8. 让 Windows 的 R 用上 CUDA
  9. 干货 | 鸟瞰 MySQL,唬住面试官!
  10. java 迭代器复制_遍历聚合对象中的元素——迭代器模式(五):JDK内置迭代器的使用...