五种数据访问模式
1,在线访问
在线访问模式会占用一个数据库连接,读取数据,每个数据库操作都会通过这个连接不断地与后台的数据源进行交互。
在线访问方式的优点:
可以处理复杂的 Select 语句
性能比直接的 SQL 要优越一些
2,DAO (DataAccess Object)
DAO 提供了访问关系型数据库所需操作的接口,将数据访问和业务逻辑分离,对上层提供面向对象的数据访问接口。
DAO 设计模式可以减少代码量,增强程序的可移植性,提高代码的可读性。
3,DTO (Data Transfer Object)
它需要跨不同的进程或是网络的边界来传输数据。 这类对象本身应该不包含具体的业务逻辑,与业务逻辑解耦。
4,离线数据模式
它以数据为中心,XML 集成,数据可以方便地与 XML 格式的文档之间互相转换;独立于数据源,离线数据模式的不同实现定义了数据的各异的存放结构和规则,这些都是独立于具体的某种数据源的。
5,对象/关系映射 (O/R Mapping)
多数应用的数据都是存在关系型数据库中,对象/关系映射 就提供了这样一种工具或平台, 能够将应用程序中的数据转换成关系型数据库中的记录,或是将关系数据库中的记录转换成应用程序中的代码便于操作的对象。
Hibernate 是一个功能强大,可以有效地进行 数据库数据 到 业务对象 的 O/R 映射方案。Hibernate 推动了基于普通 Java 对象模型,用于映射底层数据结构的持久对象的开发。这样,在具体操纵数据库时,就不需要再去和复杂的 SQL 语句打交道,只要像平时操作对象一样操作即可。
工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。
事务处理设计
事务必须服从 ACID 原则。ACID 是原子性(Atomicity)、一致性 (Consistency)、隔离性 (Isolation) 和持久性(Durability) 的缩写。
在 JDBC 中,打开一个连接对象 Connection 时,默认是 auto-commit 模式,每个 SQL 语句都被当作一个事务,即每次执行一个语句,都会自动地得到事务确认。为了能将多个SQL 语句组合成一个事务,要将 auto-commit 模式屏蔽掉。在 auto-commit 模式屏蔽掉之后,如果不调用 commit() 方法,SQL 语句不会得到事务确认。在最近一次 commit() 方法调用之后的所有 SQL 会在方法 commit() 调用时得到确认。
连接对象管理设计:通过资源池解决资源频繁分配、释放所造成的问题。
建立连接池的第一步,就是要建立一个 静态
的连接池。
所谓静态,是指池中的连接是在系统初始化时就分配好的,并且不能够随意关闭。
Java 中给我们提供了很多容器类,可以方便地用来构建连接池,如 Vector、 Stack 等。在系统初始化时,根据配置创建连接并放置在连接池中,以后所使用的连接都是从该连接池中获取的,这样就可以避免连接随意建立、关闭造成的开销。
有了这个连接池,下面就可以提供一套自定义的分配、释放策略。
当客户请求数据库连接时,首先看连接池中是否有 未分配
出去的连接。如果存在空闲连接
则把连接分配给客户,并标记该连接为已分配。
若连接池中没有空闲连接,就在已经分配出去的连接中,寻找一个合适的连接给客户,当客户释放某一个数据库连接时,则把该连接放入到连接池中,而不是关闭它,重新把该连接分配给客户。
物联网层次架构
1,感知层
感知层主要功能是识别对象、采集信息。
通过传感器、数码相机等设备,采集外部物理世界的数据;通过条码、蓝牙、红外等短距离传输技术传递数据。感知层的关键技术包括检测技术、短距离无线通信技术等。
2,网络层
网络层将感知层获取的信息进行传递和处理,数据可以通过移动通信网、互联网、企业内部网、各类专网、 小型局域网进行传输。
3,应用层
应用层解决的是信息处理和人机交互问题。网络层传输来的数据在这一层进入各类信息系统进行处理,并通过各种设备与人进行交互。
工作流参考模型包括的组件是:
过程定义工具、工作流引擎、工作流客户端应用、相关应用、管理与监视工具。