1.是连接java数据库和应用程序的中间件.
2.Hiberndate对jdbc进行了轻量级的封装,并且在必要的时候用户还可以绕过Hiberndate,直接访问JDBC API
3.在软件分层的架构中位于持久化层,封装了所有数据访问细节,使业务逻辑层可以专注实现业务逻辑
4.是一种ORM映射工具,能够在建立面向对象的域模型和关系模型之间映射
物理层和逻辑层:
逻辑层为三层结构,物理层有两层(业务逻辑层和数据库层运行在同一台机器上,这台机器既是应用服务器,用是数据库服务器)
软件分层的优点:
1.伸缩性:
指应用程序是否能支持更多的用户访问,如在双层的GUI应用程序中,通常对每个用户都提供一个数据库连接,而在三层的结构中
,可以采用数据库连接池机制,用少量的数据库连接支持多个用户,应用的层越少,可以增加资源的地方就越少,层数越多,可以将每层分布
在不同的机器上,比如:用一组服务器作为Web服务器,一组服务器处理业务逻辑,还有一组服务器作为数据库服务器.
2.可维护性
层数越多,修改起来某一部分的话,就直接可以修改某一层,这样不会影响到其他层.
3.可扩展性:
层数越少,修改起来就越容易破坏现有的程序,层数越多,就可以在每个层中提供扩展点,不会打破应用的整体框架.
4.可重用性:
指程序代码没有冗余,同一种程序能够满足多种需求,如:业务逻辑层可以被多种表述层共享,既支持基于GUI界面的表述层,也支持基于Web页面的表述层
5.可管理性:
分的层越多,这样项目小组中可以将工作分解给不同的人,便于管理.
软件分层的缺点:
分层越多,对软件设计人员的要求就越高,在设计阶段就要花费时间构思合理的体系结构,否则存在很多缺陷,层数越多,越难调试.
持久化层的加入使的层变为: 表述层->(业务逻辑层->持久层)->数据库层
持久层封装了数据访问细节,为业务逻辑层提供了面向对象的API
软件模型的概念:
在软件开发领域,模型用来表示真实世界的实体,在开发的不同阶段,需要为目标系统创建不同类型的模型,在分析阶段,需要创建概念模型,在设计阶段,需要创建域模型和数据模型
1.概念模型:用来模拟问题域中的真实实体,描述每个实体的概念和属性,和实体之间的关系,在这个阶段并没有实体的行为(也就是方法),
目的是为了帮助更好的理解问题域,识别系统中的实体,这些实体在设计阶段很有可能变成类,实体和实体之间的关系,也就是类和类之间的关系,但是没有实体的方法
域对象的持久化概念:
当实体在内存中创建后,他们不可能永远存在,要么在内存中清除,要么被持久到数据库中,一旦对象被持久化,他们可以在应用再次运行时被重新读入到内存,重新构造出域对象,通常只有实体域对象才需要
持久化,过程对象不需要持久化

