让数据库访问组件支持Using

简介:

以前一直以为把数据库访问层已经写得很完美了,今天无意中一个客户提醒、现在的数据库访问层不只是Using语句,可能是编程习惯的原因一直不怎么用Using这个写法,的确是自己做得不好,马上针对客户的反馈意见进行了改进,增加了IDisposable接口的实现。

// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
// ------------------------------------------------------------

using  System;
using  System.Data;
using  System.Data.Common;
using  System.IO;
using  System.Text;

namespace  DotNet.DbUtilities
{
    
using  DotNet.Utilities;

    
///   <summary>
    
///  BaseDbHelper
    
///  有关数据库连接的方法。
    
///  
    
///  修改纪录
    
///
    
///         2011.01.29 版本:3.1 JiRiGaLa 实现IDisposable接口。
    
///         2010.06.13 版本:3.0 JiRiGaLa 改进为支持静态方法,不用数据库Open、Close的方式,AutoOpenClose开关。
    
///         2010.03.14 版本:2.0 JiRiGaLa 无法彻底释放、并发时出现异常问题解决。
    
///         2009.11.25 版本:1.0 JiRiGaLa 改进ConnectionString。
    
///  
    
///  版本:3.1
    
///  
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2011.01.29 </date>
    
///   </author>  
    
///   </summary>
     public   abstract   class  BaseDbHelper : IDisposable  //  IDbHelper
    {

        代码省略

        
public   void  Dispose()
        {
            
this .dbCommand  =   null ;
            
this .dbDataAdapter  =   null ;
            
this .dbTransaction  =   null ;
            
//  关闭数据库连接
             if  ( this .dbConnection  !=   null )
            {
                
if  ( this .dbConnection.State  !=  ConnectionState.Closed)
                {
                    
this .dbConnection.Close();
                }
            }
            
this .dbConnection  =   null ;
        }
    }
}

  

   经过测试,顺利调试成功,又完善了一下,心里舒坦了很多。

         private   void  TestUsing()
        {
            
using  (IDbHelper dbHelper  =   new  SqlHelper(BaseSystemInfo.UserCenterDbConnection))
            {
                dbHelper.ExecuteNonQuery(
"  SELECT GETDATE()  " );
            }
        }

  


本文转自jirigala_bao 51CTO博客,原文链接:http://blog.51cto.com/jirigala/810679

相关文章
|
缓存 NoSQL Java
Spring Boot如何优雅实现动态灵活可配置的高性能数据脱敏功能
在当下互联网高速发展的时代下,涉及到用户的隐私数据安全越发重要,一旦泄露将造成不可估量的后果。所以现在的业务系统开发中都会对用户隐私数据加密之后存储落库,同时还要求后端返回数据给前台之前进行数据脱敏。所谓脱敏处理其实就是将数据进行混淆隐藏,如将用户的手机号脱敏展示为`178****5939,采用 * 进行隐藏,以免泄露个人隐私信息
1270 0
|
8月前
|
SQL 开发框架 关系型数据库
基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中
基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中
|
7月前
|
SQL 数据库 开发者
全面提速你的数据访问:Entity Framework Core性能优化指南,从预加载到批量操作的最佳实践揭秘,打造高性能数据库交互体验
【8月更文挑战第31天】本文详细介绍如何在Entity Framework Core(EF Core)中优化数据访问性能,涵盖从创建项目到定义领域模型、配置数据库上下文的最佳实践。文章通过具体代码示例讲解了预加载、惰性加载、显式加载、投影及批量操作等技术的应用,并介绍了如何使用SQL查询和调整查询性能来进一步提升效率。通过合理运用这些技术,开发者可以构建出高效且响应迅速的数据访问层,提升应用程序的整体性能和用户体验。
146 0
|
8月前
|
开发框架 前端开发 测试技术
基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中(2)
基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中(2)
|
9月前
|
缓存 Java 数据库连接
构建高效数据库交互:Hibernate与JPA的性能优化策略
【6月更文挑战第25天】在大数据时代,优化Hibernate和JPA的数据库性能至关重要。本文探讨了优化策略:正确配置映射以减少冗余,利用JPQL/HQL提升查询效率,避免全字段选择,使用索引和分页,有效利用缓存策略,以及管理事务以平衡资源锁定。示例代码展示了分页查询的实现,以防止性能下降。
159 0
|
10月前
|
Java 关系型数据库 MySQL
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
|
Java 数据库
SSM 最简单的实现操作 多数据源&动态切换
SSM 最简单的实现操作 多数据源&动态切换
342 0
SSM 最简单的实现操作 多数据源&动态切换
|
前端开发 Java 数据库连接
“构建高级自定义MVC框架实现CRUD功能的完整指南“
“构建高级自定义MVC框架实现CRUD功能的完整指南“
74 0
对象的自治和行为的扩展与适配
对象的自治和行为的扩展与适配
对象的自治和行为的扩展与适配
|
数据库
模式方法模式实例数据库访问
模式方法模式实例数据库访问
89 0
模式方法模式实例数据库访问