什么是Hibernate呢?
我认为它是一个框架,一个方便程序员操作数据库的工具,呵呵,看看专家怎么写的
1.它是连接Java 应用程序和关系数据库的中间件
2.它对JDBC API进行了封装,负责Java对象的持久化,
3.在分层的软件的软件架构中它位于持久化层,封装了所有数据的访问细节,使业务逻辑层可以专注于实现业务逻辑.
4.它是一种ORM映射工具,能够建立面向对象的域模型和关系数据模型之间的映射.
域模型,概念模型和数据模型
这种框架所要解决的问题是:比如,在同一个JSP文件中,即包含生成动态网页的代码,还包含响应用户的请求,完成相应业务逻辑的代码.由于界面代码同业务逻辑代码掺杂在一起,使程序结构不清晰,而且维护困难.
对于上面的问题,比如一个在90年代就采用计算机来辅助商业运作的企业/公司,想要升级他的管理系统,可以选择在原系统基础上升级或重新开发,软件开发专家说,如果在改动15%才能达到新的要求的话,就不如重新开发一套系统.
表述层:就是和用户交互的用户界面
业务逻辑层:实现各种业务逻辑
软件层的特征:
每个层都由一组相关的类和组件构成,共同完成特定的功能
层与层之间存在自上而下的依赖关系,即上层会访问下层的API,而下层组件不应依赖上层的API.
每个层对上层公开API,但具体的实现细节对外透明(看不到的意思).
数据持久化层:负责存放和管理用户的的持久性业务数据.
因为软件上层总是依赖软件下层,因此可以把软件上层称为下层的客户程序.
软件分层的优点:
恰当的为软件分层,可以提高软件的下列性能
伸缩性:指应用程序能否支持更多的用户,
可维护性:是指当需求发生变化时,当修改一部分代码不会影响到其他代码.(这个是值得一提的,分层分的越多,如果设计好的话,那么每个层的功能都比较单一,所以找问题就会好找些),
可扩展性:体现在当有新功能添加时的难易程序
可重用性:指程序代码没有冗余,同一个程序能够满足多种需求
可管理性:是指管理系统的难易程序.