技术开发 频道

持久数据层框架设计

【IT168 技术文章】

    前言:

    持久数据层框架是我在研究NHibernate后,受它的启发做的一次创新。当前版本支持多数据库,O/R Mapping等,同时与NHibernate相比,它是一个轻量级框架,在学习和应用上显得更加简单。以下是我的初稿,第一次将我的研究成果展现出来,有不对的地方或更好的建议,欢迎点评。

    1.     以下是数据层调用接口:

     int CreateDbTable(object objTable);
            bool IsExistTable(string tableName);
            int ExcuteSql(string sql);
            int Insert(string tableName, Hashtable values);
            int Update(string tableName, Hashtable values, string wher);
            DataTable Query4DataTable(object obj);
            string Query4Value(string sql);
            string Query4Value(string sql, int columnIndex);
            int GetCount(string sql);
            void BeginTransaction();
            void Commit();
            void Rollback();
            List<ValueText> Query4VtObject(string sql);
            DataSet Query4DataSet(object obj);
            IResultSet Query4ResultSet(string sql);
            Hashtable Query4Hashtable(string sql);
            DataRow Query4DataRow(string strSql);
            IDataReader Query4DataReader(string strSql);     
            int Insert(object ormTable);
            int Update(object ormTable);
            int Delete(object ormTable);
            bool Delete(string tableName);           

     2.     以下是数据层调用入口:

     1         /// <summary>
     2         /// Default Handler Operator for any database
     3         /// </summary>
     4         public static IDbOperator DefaultDbOperator()
     5         {
     6             //get instance by db interface, such as SQL Server, Access, MYSQL,
     7             Instance instance = new Instance();
     8             object objDb = instance.GetInstance();
     9             IDbOperator db = objDb as IDbOperator;
    10             if (db == null)
    11             {
    12                 throw new NotSuportedDbException();
                        //need to write a library to support this database
    13             }
    14             return db;
    15         }

    在调用数据时,只需要使用

    IDbOperator db=DbFactory.DefaultDbOperator();

    3.     数据层后台配置:

    从下面的配置,大家就应该可以看出,持久数据层框架支持任何类型的数据库。 

     <Data DbType="SQLServer">
        
<SQLServer type="Zivsoft.Data.SQLServerDbOperator;SQLServer">
          
<add key="ConnectionString" value=""/>
          
<add key="AutoCreateTable" value="true"/>
                
<add key="AutoCreateDb" value="false"/>
        
</SQLServer>
        
<MySQL type="Zivsoft.Data.MySQLDbOperator;MySQL">
                
<add key="ConnectionString" value=""/>
                
<add key="AutoCreateTable" value="true"/>
                
<add key="AutoCreateDb" value="false"/>
        
</MySQL>
      
</Data>
0
相关文章