• 个人开发框架总结(一)


        趁着五一放假,来写几篇文章,因为最近实在实在是太忙了。

        在开发过程中,大家可能都发现,形成一套个人开发风格是相当重要,这也可以延伸为整个团队的开发模式,甚至形成一个有形的开发框架。

        我经过这一两年的摸索,不断的完善,现在大体形成了几个东东,自己感觉还不错,所以想贴出来与大家一起分享,如有需要的朋友,可以直接与我联系。

        大体有以下几个类库:

        FaibClass.Data 数据访问库

        FaibClass.Common.Windows WinForm框架库

        FaibClass.Windows.Forms WinForm控件库(目前只有TreeList及一些TextBox控件)

        FaibClass.Update 在线更新库

        在以后的几天里将分别做一些介绍

    一、FaibClass.Data

        主要是提供数据访问操作的类库,可支持SqlServer、Oracle、及各种OleDb数据库。
        DataHelper 核心类 提供各种数据访问方法。先说一下它的几个方法和属性:

            ExecuteDataTable 填充数据到DataTable,共12种重载
            ExecuteNonQuery 执行Sql语句
            ExecuteReader 执行查询语句返回IDataReader
            ExecuteScalar 执行查询,返回当个结果
            FillDataset 填充DataSet,共12种重载
            FillModelList 填充DataList,共12种重载
            Update 更新DataTable或DataSet,共6种重载
            BeginTransaction 开始事务,支付分布式事务
            CommitTransaction 提交事务
            RollbackTransaction 回滚事务
            CreateParameters 创建参数集,因为使用存储过程时SqlServer和Oracle的参数名称不一样,故用这个方法生成
            OpenUpdateBag 打开更新开关,在使用Update前,要使用这个方法把相应的sql语句保存到内存中,以在Update时能够更新到数据库
            CloseUpdateBag 关闭更新开关

            ParameterPrefix 当前数据操作的存储过程参数名称的前缀,如SqlServer的@和Oracle的:

            下面是具体的操作类型,SqlServer、Oracle、OleDb都是继承自DataHelper的,但并未为每一个操作类都写出各种数据操作的方法,这也主要是为了好维护,这几个类同时实现IDataProvider接口,这个接口就是为每种类型提供DbConnection、DbParameter、DataAdapter、DbCommand等。如SqlServer里是这样写到的:

    Code

        这样,每一个类就好维护了,Oracle就使用OracleConnection,OleDb就使用OleDbConnection。

        Parameter 存储过程参数类,这跟System.Data里的差不多,都是实现同样的一个功能,只是说使用这个的时候,ParameterName不用具体的加入@或:这样的前缀。

        ParameterCollection 存储过程参数集合类,这里面特别的有几个方法
        FromDataModel 从模型转换为存储参数。可以根据具体的模型,将所有属性转换为存储过程参数,以为添加或修改作准备。
        Format 可以格式化Sql查询语句,比如在使用添加或修改的时候,可以这样使用

    dataHelper.ExecuteNonQuery(params.Format("insert into table({0}) values({1})"), params);

    dataHelper.ExecuteNonQuery(
    params.Format("update table set {0}"), params);

        BaseModel 数据模型基类,所有的数据模型都是继承这个类,如TB_BUY_BILL.cs

    Code

        上面已经提到DataModelList这个类了,实际就是一个List<T>泛型,其中提供了几个方法:
        Sort 按指定的字段名进行排序。
        Select 根据给定的条件查询出子集合,类似于DataTable.Select。
        Compute 根据给定的条件及计算求和或平均等。
        Group 对字段进行分组。
        如:


    Code

        BaseDataAccess 数据操作类,这里面就整合了一些发新建实体、修改实体等方法。
        Create 新建实体
        Update 更新实体,共4种重载
        Delete 删除实体
        DeleteBy 删除多个实体
        Get 获得实体,共7种重载
        IsExitst 判别实体是否存在,共4种重载
        Select 查询实体集,共9种重载

        NewEntity 新实体
        PageArgs 分页参数

        相关的例子TB_BUY_BILL_DA.cs

    Code

        DataColumn 数据列映射类,主要标明数据字段的各种属性,比如数据类型等,在以上代码中,已经看到GetDataColumn方法了。

        EnumTextAttribute 枚举说明特性类,主要是添加在枚举上的,方便数据查询显示时直接转为中文说明。
        GetText 获得枚举值下的中文说明
        GetValue 根据中文说明获得对应的枚举值 

        QueryBuilder 查询构造器类,主要是构造查询条件,where后面的,使用方法类似StringBuilder。
        Append 追加查询条件
        BeginBracket 添加一个左括号
        EndBracket 添加一个右括号

        下面是Configuration下的几个类,主要提供连接串的存储方式
        AppConnectionConfig 连接串是存储在App.setting文件中的
        BinaryConnectionConfig 连接串是存储在bin文件里的,读或写的时候key取"a"...."h"。
        RegConnectionConfig 连接串是存储在注册表里的
        SysXmlConnectionConfig 连接串是存储在系统目录里的xml文件里的
        XmlConnectionConfig 连接串是存储在任意位置的xml文件里的
        ConfigurationCreator 从配置文件里创建实例,这里相关的类还有:实例创建配置节-InstanceSettingsSection、实例创建配置集合-InstanceSettingsCollection、实例创建配置元素-InstanceSettings
        它的工作过程如下:首先在在app.config里配置

    Code

        这样,DA里就可以改成
    Code

        好了,Data这个类就介绍到这里了,相关的例子在以后的文章中会给出的,下一篇介绍一下Common.Windows类库了。
        http://www.cnblogs.com/faib/archive/2009/05/02/1447783.html

  • 相关阅读:
    笔试算法题(51):简介
    笔试算法题(50):简介
    笔试算法题(49):简介
    笔试算法题(48):简介
    笔试算法题(47):简介
    笔试算法题(46):简介
    SQL Server 笔记
    SQL Server 2008 安装重启电脑失败
    列举某个目录文件
    Linux LAMP 配置
  • 原文地址:https://www.cnblogs.com/faib/p/1447768.html
Copyright © 2020-2023  润新知