持久层技术

持久层技术的目的是分离sql。  在两层架构体系当中, 前台(VB, pb) 调用后台数据库的precedure, 这样大部分逻辑都在procedure中完成, “procedure是一个语言”, 这样造成很多问题:比如性能问题, 所有逻辑都在数据库服务器上做了; 比较难维护, 数据库的东西是不能轻易更改的等等。 当三层架构开始流行时, 起初sql语句被那嵌在其他语言当中, 比如jsp但还是比较难维护, 还有另一个大问题: 其他语言必须定义一种符号, 来区分其时sql语句, 以致于编译的时候对其进行特殊处理, 这样的话对IDE有了很大的要求, 要有一个“precompile”过程。 为了解决这个问题, java语言等将sql初始化为自己的字符串类型, 用其代表sql语句, 但这样又室代码中sql语句字符串的长度大大的增加, 代码可读性降低, 复杂性增加!

这个时候持久化层的出现就成了必然。 持久化成隔离了逻辑层与数据库层,用于连接数据库, 提供最简单的方法进行做数据的保存, 删除等操作。 为了实现分离的目的, DAO层被引入了进来。DAO层申明了一些接口, 用于罗基层使用; 这些接口的实现类可以用各种持久化层技术, 来做数据库的CRUD。 DAO 层的好处就是当持久层的技术改变了(比如说从Hibernate变为IBATIS)是, logic layer不需要改变任何东西。 现在的persistence framwork已经不仅仅提供数据库的CRUD操作了, 他提供了Transaction处理, produredure调用, 缓存等一系列功能。 可以把现在的持久层技术按封装层次分为三层:LOW, Medial, High, 以JAVA为例:LOW: jdbc, java标准API, 提供所有的数据库操作功能, 但使用起来比较复杂, 代码冗余。。。。 Meial:iBatis, 他暴露了sql语句, 程序员可以随便控制及组装自己的对象, 也提供了ormapping的功能, tansaction控制, 缓存, lazy读等功能, 他的优势在于暴露sql, 提供一定的映射, 比较slightlyHigh:hibernate, toplink, 完全封装, 使非数据库developer进行完全面向对象的操作, 确定就是assuption比较多, 这样就会对用户有些限制, 因为用户不能很灵活的操纵sql语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值