前面已经提到过了本框架的由来,时至今日该框架已经和最初版本有了天壤之别。因为仍有部分代码是采用原有的框架,所以本框架也算不上原创,只是在原有的基础上不断的改进,所以希望了解此框架的人不要过多的指责。

  一. 配置数据库连接

    在该框架中自定义了一个配置文件Database.config, 这个配置文件的根节点为<databaseList></databaseList>, 其可以包含多个子节点用于配置数据库的配置连接,具体代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<databaseList>
  <database name="JooShowGit">
    <connectionString>Server=127.0.0.1;database=JooShowGit;user id=sa;Password=000000</connectionString>
  </database>
</databaseList>

    该配置文件可以包含多个<database></database>的节点,该配置文件可以通过反序列化的形式转化为一个集合对象,最终可以通过database的name熟悉来获取一个数据库的Connection对象. 但是这里得注意一下,如果配置了多个数据库的连接,只能配置一种类型的数据库,比如MSSQL,Oracle,MySQL,Sqlite 等,不能配置混合的数据库连接,这里是有待改进的部分。在原有的框架中 name="JooShowGit(自定义)" 只是一个唯一标识符,在系统中查找的时候更加方便,但是改进之后可以用于关联实体与数据库连接的关系。

 

  二. 如何加载配置文件

    配置好如上的的数据库连接之后,我们并不是自己去读取配置然后创建连接,我们需要在web.config 或者app.config文件中配置如下代码:

<appSettings>
    <add key="DatabaseListFile" value="/Configs/Data/Database.config"/>
    <add key="DataCommandFile" value="/Configs/Data/DbCommandFiles.config"/>
</appSettings>

    这段代码告诉我们从何处去加载配置文件,DatabaseListFile 指定了数据连接配置文件的地址,在应用程序启动之后会自动寻找这个地址加载该配置到缓存,内部实现是通过反序列化为对象集合,缓存的是对象数据。

 

  三. Command 配置文件

    我们都知道在.NET数据库连接操作的时候都有一个command对象,用于执行命令。在框架中所有的SQL语句都配置在配置文件中,之前文章也提到过,我是非常反感这种配置的,这里为了从基础部分讲到使用以及改造过程,这里还是先介绍一下其作用。

<?xml version="1.0" encoding="utf-8" ?>
<dataOperations>

  <!--User_Base所有字段的修改-->
  <dataCommand name="User.UpdateAllBase" database="JooShowGit" commandType="Text">
    <commandText>
      <![CDATA[
       UPDATE [User]
       SET [UserName] = @UserName
          ,[Email] = @Email
          ,[Password] = @Password
          ,[RegisterDate] = @RegisterDate
          ,[RegisterIp] = @RegisterIp
          ,[Status] = @Status
          ,[RegisterApplicationID] = @RegisterApplicationID
          ,[ActiveDate] = @ActiveDate
          ,[LastLoginDate] = @LastLoginDate
          ,[LastLoginApplicationID] = @LastLoginApplicationID
          ,[RegisterSource] = @RegisterSource
          ,[AuditStatus] = @AuditStatus
          ,[IsLogin] = @IsLogin
          ,[LoginCount] = @LoginCount
          ,[LastLoginIp] = @LastLoginIp
          ,[AuditUser] = @AuditUser
          ,[AuditDate] = @AuditDate
          ,[IsDeleted] = @IsDeleted
          ,[OLDApplicationID] = @OLDApplicationID
          ,[OLDID] = @OLDID
          ,[RowGuid] = @RowGuid
          ,[IMNum] = @IMNum
          ,[Phone] = @Phone
          ,[IsEmailValidate] = @IsEmailValidate
          ,[IsPhoneValidate] = @IsPhoneValidate
          ,[StepNum] = @StepNum
          ,[SaleCode]=@SaleCode
          ,[PasswordIM]=PasswordIM
          ,[ActiveIP]=@ActiveIP
          ,[CompanyType]=@CompanyType
            Where UserId=@UserId
        ]]>
    </commandText>
    <parameters>
      <param name="@UserId" dbType="Int32" direction="Input"/>
      <param name="@UserName" dbType="String" direction="Input"/>
      <param name="@Email" dbType="String" direction="Input"/>
      <param name="@Password" dbType="String" direction="Input"/>
      <param name="@RegisterDate" dbType="DateTime" direction="Input"/>
      <param name="@RegisterIp" dbType="String" direction="Input"/>
      <param name="@Status" dbType="Int32" direction="Input"/>
      <param name="@RegisterApplicationID" dbType="Int32" direction="Input"/>
      <param name="@ActiveDate" dbType="DateTime" direction="Input"/>
      <param name="@LastLoginDate" dbType="DateTime" direction="Input"/>
      <param name="@LastLoginApplicationID" dbType="Int32" direction="Input"/>
      <param name="@RegisterSource" dbType="Int32" direction="Input"/>
      <param name="@AuditStatus" dbType="Int32" direction="Input"/>
      <param name="@IsLogin" dbType="Int16" direction="Input"/>
      <param name="@LoginCount" dbType="Int32" direction="Input"/>
      <param name="@LastLoginIp" dbType="String" direction="Input"/>
      <param name="@AuditUser" dbType="String" direction="Input"/>
      <param name="@AuditDate" dbType="DateTime" direction="Input"/>
      <param name="@IsDeleted" dbType="Int16" direction="Input"/>
      <param name="@OLDApplicationID" dbType="Int32" direction="Input"/>
      <param name="@OLDID" dbType="Int32" direction="Input"/>
      <param name="@RowGuid" dbType="String" direction="Input"/>
      <param name="@IMNum" dbType="String" direction="Input"/>
      <param name="@Phone" dbType="String" direction="Input"/>
      <param name="@IsEmailValidate" dbType="Int32" direction="Input"/>
      <param name="@IsPhoneValidate" dbType="Int32" direction="Input"/>
      <param name="@StepNum" dbType="Int32" direction="Input"/>
      <param name="@SaleCode" dbType="String" direction="Input"/>
      <param name="@PasswordIM" dbType="String" direction="Input"/>
      <param name="@ActiveIP" dbType="String" direction="Input"/>
      <param name="@CompanyType" dbType="Int32" direction="Input"/>
    </parameters>
  </dataCommand>


</dataOperations>
Command配置文件

相关文章: