zoukankan      html  css  js  c++  java
  • 使用Enterprise Library操作Oracle的疑点难点总结

    我们知道,Microsoft patterns & practices小组开发的Enterprise Library是一款非常好的组件,其有很多个模块,包括数据访问、配置、加密、IOC容器、日志、异常处理等内容,其中数据访问模块是其中非常不错的一个数据访问组件,提供了对各种数据库操作的抽象封装,使用数据访问起来基本上是对各种数据库是透明的,最重要的是,简化了代码,提高了开发效率。
    本文介绍Enterprise Library中的数据访问模块在操作Oracle过程中的一些经验总结,作为自己和博友做数据库访问的一个参考。
    1、存储过程的游标处理
    这个和SqlServer数据获取有点不同,在Oracle中用存储过程返回数据内容,必须定义一个游标,如下面所示的Oracle存储过程
    Code

    大家看到,上面的SelectAll和SelectBy存储过程都需要一个游标的参数,是OUT类型的,也就是你获取数据需要定义一个输出的游标参数,我们看看普通的数据访问是如何做的。
    Code

    上面是不用Enterprise Library数据访问而直接使用ADO.NET的数据对象访问的数据库,可以看到存在两个问题,一个是数据操作的代码比较臃肿,如果你使用很多这种操作,就会发现很多重复性的代码,另外就是数据解析的部分也比较臃肿重复,我们下面看看使用了Enterprise Library数据访问模块后的效果是如何。
    Code

    是不是代码很简短了,这里注意两个地方,一个是我们创建游标的时候,采用cur_OUT来做为它的名称,这样我们就不用增加整个游标的定义了,因为EnterpriseLibrary模块默认给我们增加了这个游标处理(有可以少3行代码了)。另外引入了SmartDataReader对象来处理数据的转换问题,这个类后面附上,以供参考。
    由于EnterpriseLibrary 默认的数据访问游标是cur_OUT,如果存储过程的游标名称和cur_OUT不一样,如p_Cur,那么数据库操作代码会变化为下面,这个必须注意。否则你的数据访问总是获取不到而发生错误。

    Code

    下面附上数据解析类的代码,供参考。
    https://files.cnblogs.com/wuhuacong/SmartDataReader.rar 
    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    css随笔7
    css随笔6
    css随笔5
    *css随笔4
    css3随笔3
    css随笔2
    css随笔1
    HTML总结
    HTML随笔2
    消息转发原理
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1551315.html
Copyright © 2011-2022 走看看