此模式属于数据源架构模式 目录,此目录属于 企业应用程序体系结构模式。
目的
充当数据库表的网关的对象。一个实例处理表中的所有行。
这里Gateway表示 封装对外部系统或资源的访问的对象。
说明
1.Table Data Gateway保存用于访问单个表或视图的所有SQL:选择,插入,更新和删除。其他代码调用其方法进行与数据库的所有交互。表网关的想法是为每个数据库表提供一个网关类。
2.在应用程序逻辑中混合使用SQL可能会导致多个问题,因此Table Data Gateway模式将SQL查询与代码分开。
如何运作
一个表数据网关有一个简单的界面,通常由几个查找方法来从数据库获取和更新,插入数据和删除的方法。每种方法都将输入参数映射到SQL调用中,并针对数据库连接执行SQL。表数据网关通常是无状态的,因为它的作用是来回推送数据。
表数据网关模式将SQL查询与源代码分离。
何时使用它
1.表数据网关可能是最简单的数据库接口模式,因为它可以很好地映射到数据库表或记录类型上。它也很自然地封装了数据源的精确访问逻辑。我最少使用Domain Model,因为Data Mapper在域模型和数据库之间提供了更好的隔离。
2.为了使用表数据网关,您将为数据库中的每个表创建一个。但是,对于非常简单的情况,您可以使用单个表数据网关来处理所有表的所有方法。
3.使用表数据网关封装数据库访问的一个好处是,相同的接口既可以用于使用SQL来操作数据库,也可以用于使用存储过程。
示例代码
让我们为PersonGateway的示例代码创建一个类图,以演示这种模式。
第1步:创建域模型或POJO类。
public class Person{ |
步骤2:创建一个Person Gateway 类,其中包含用于访问单个表或视图的所有SQL:选择,插入,更新和删除。其他代码调用其方法进行与数据库的所有交互。
public class PersonGateWay{ |