设计模式-元数据映射模式(Metadata Map)

手写的代码往往会导致代码简单和重复问题,虽然可以通过委托和继承分解出通用行为,但还有更好的方法-元数据方法。例如下列描述把类名和表名对应了起来。
<field name=“customer”  targetClass=“Customer”, dbColumn=“custID”, targetTable=“customers”  lowerBound=“1” upperBound=“1” setter=“loadCustomer”/>

有了元数据映射方法,有必要构造对内存对象的查询。在开发者不需要知道SQL或关系数据库结构的细节的前提下,可以使用查询对象

还可以建立一个资源库,能在很大程度上从视图隐藏数据库,任何到数据库的查询都可以做成资源库基础上的查询对象。


概念

在元数据中保持关系-对象映射的详细信息。元数据映射使开发者可以以一种简单的表格形式来定义映射,这些映射由通用代码处理,来实现读取、插入和更新数据的细节。

运行机制

利用元数据信息的途径:

  • 代码生成。需要编写代码生成器,即输入是元数据,输出是映射实现类的源代码。XML是流行的选择,一个加载步骤会获得元数据并把它转变成程序语言结构,并最终生成输出。
  • 反射编程。在例如setName方法中,根据元数据中定义的域和方法的名字,实现它们的映射。但是这种方法往往速度慢。

使用时机

元数据映射能减少处理数据库映射所需的工作量,但是需要做些准备工作。
元数据映射会影响到软件重构,因为比如某些域的改动会影响到应用程序。
元数据映射能够使重构数据库更容易,因为元数据表示了数据库结构的接口声明,因此,对数据库的修改可以由元数据映射来反映。


使用元数据和反射(java

注意:下列代码中表、类、列、域都采用的是通用的命名,以便对元数据进行处理
Step1 元数据的保存,保存到两个类里-数据映射(类到表的映射)和列映射(列到域的映射)

Step2 放置这些结构在特定的映射器中(手工编写)

Step3 用ID开始查找。

更新数据库

插入数据库

多对象查询-一次查询出多个对象

方法:把where子句作为参数构造SQL语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值