数据访问层的第一个类(针对sqlserver)

原创 2004年06月23日 11:07:00

数据访问的服务类 只在数据访问组建内可用

internal class SQLServer
 {
  private SqlConnection connection;
  private static SQLServer sqlServer;
  private SqlTransaction sqlTransaction;
  private bool inTransaction;
  private SQLServer()
  {
   connection = new SqlConnection(GetConnectionString());
   inTransaction = false;
  }
  private string GetConnectionString()
  {
   string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
   //如果加密可在这里解密
   return ConnectionString;
  }

  /// <summary>
  /// 数据库的一个连接
  /// </summary>
  public SqlConnection Connection
  {
   get
   {
    if(connection == null)
     connection = new SqlConnection(GetConnectionString());
    return connection;
   }
  }
  /// <summary>
  /// 打开连接
  /// </summary>
  public void OpenConnection()
  {
   if(connection.State.ToString().ToUpper() != "OPEN")
    connection.Open();
  }
  /// <summary>
  /// 关闭连接
  /// </summary>
  public void CloseConnection()
  {
   if(connection.State.ToString().ToUpper() == "OPEN")
    connection.Close();
  }
  /// <summary>
  /// 事务
  /// </summary>
  public SqlTransaction SqlTran
  {
   get{return sqlTransaction;}
  }
  
  /// <summary>
  /// 开始事务
  /// </summary>
  public void BeginTransaction()
  {
   sqlTransaction = connection.BeginTransaction();
   inTransaction = true;
  }
  /// <summary>
  /// 提交事务
  /// </summary>
  public void CommitTransaction()
  {
   if(sqlTransaction != null)
    sqlTransaction.Commit();
   inTransaction = false;
  }
  /// <summary>
  /// 回滚事务
  /// </summary>
  public void RollbackTransaction()
  {
   if(sqlTransaction != null)
    sqlTransaction.Rollback();
   inTransaction = false;
  }  

  /// <summary>
  /// 获取单一的对象引用
  /// </summary>
  /// <returns>SQLServer对象引用</returns>
  public static SQLServer Instance()
  {
   if(sqlServer == null)
   {
    sqlServer = new SQLServer();
   }
   return sqlServer;
  }  
 }

.net中的数据访问层的封装

当年.net项目中自己封装的数据访问层,个人感觉使用非常方便
  • kevin_xf
  • kevin_xf
  • 2016年12月05日 15:53
  • 812

数据访问层的第二个类(针对sqlserver)

///  /// 提供对数据库的操作服务:SQL语句的执行,存储过程的调用 ///  public abstract class SQLHelper {  private static void At...
  • xinyulou
  • xinyulou
  • 2004年06月23日 11:21
  • 1659

设计模式学习之抽象工厂模式(实现数据访问层)

1 什么是抽象工厂模式 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们的具体类。结构图如下:   分析一下抽象工厂模式,1提供一系列...
  • wziyx513225244
  • wziyx513225244
  • 2011年08月03日 09:56
  • 3133

数据访问层的设计和实现(分布式系统七)

(1)如何对外提供数据访问层的功能 数据访问层就是方便应用进行数据读写访问的抽象层,在该层上解决各个应用通用的访问数据库的问题。 上图显示了三种方式,第一种是为用户提供专有API,不过不推...
  • u011393781
  • u011393781
  • 2016年10月08日 17:41
  • 1600

第十五章 15.9.2节练习

练习15.32 当一个Query类型的对象被拷贝、移动、赋值或销毁时,将分别发生什么? 解答: #include "Query.h" #include using namespace s...
  • chxw098
  • chxw098
  • 2014年09月21日 23:02
  • 652

C#数据访问层

 using System;using System.Data;using System.Data.SqlClient;namespace ClothLib.Common{ public class ...
  • yinxubest87
  • yinxubest87
  • 2007年11月18日 11:33
  • 1088

第十五章 15.2.1节练习

终于到15章了,面向对象程序设计 之前一直对这种z
  • chxw098
  • chxw098
  • 2014年09月18日 15:09
  • 535

通用数据访问层--SQLServer版

using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security...
  • jihuomima
  • jihuomima
  • 2008年10月08日 12:56
  • 1099

2015070405 - EffactiveJava笔记 - 第57条 只对异常使用异常(2)

异常只应该使用在异常情况下,它们永远不应该用于正常的控制流中.对API设计的启发.    设计良好的API不应该强迫它的客户端为了正常控制流而使用异常.    如果类具有”状态相关”的方法,即只有特定...
  • zhtzyh2012
  • zhtzyh2012
  • 2015年07月04日 11:55
  • 300

第4章 数据访问层

上一章的服务框架可以让应用从集中式走向分布式,解决了当网站功能越来越丰富、单个应用越来越庞大的问题,使系统走向服务化的架构。随着数据量和访问量的上升,应用访问数据库也会出现瓶颈,这时数据访问层出场! ...
  • caoshuming_500
  • caoshuming_500
  • 2016年06月13日 10:35
  • 789
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据访问层的第一个类(针对sqlserver)
举报原因:
原因补充:

(最多只允许输入30个字)