zoukankan      html  css  js  c++  java
  • 反光+简介实现数据库的访问

            开始认识到配置文件比较模式,根据这本书而言。要添加程序App.config件,然后加入System.configuration引用就能够了。

    可是真正去做的时候也遇到不少问题,小小的总结一下。

           首先。为什么要使用配置文件呢?

           我们在连接数据库的时候,须要有一个对象来保存连接字符串,通常情况下这个字符串是写在程序代码中的。这样假设我们更换数据库訪问时。我们还是要又一次改动程序,这样是非常不灵活的;其次,出于安全考虑,我们都知道SQL注入。攻击者通过输入特定字符改动SQL语句。从而获得一些比較私密的信息,危害数据库,看过以前的一则新闻。12306站点存在SQL注入等多个漏洞,试想假设一旦被一些有心人士利用了,后果是不堪设想的。基于以上原因。我们引入了配置文件。

            其次,介绍一下配置文件的使用。

            我在重构机房收费系统时在两处使用了配置文件。

            第一处:保存连接数据的字符串。

            没有使用配置文件。是这样定义连接字符串的:

           

    Dim strCon As String = "Data Source=localhost;Initial Catalog=User;User ID=sa;Password=123456;"

            如今我们要使用配置文件来保存连接字符串:

            ①在UI层中的加入一个“应用程序配置文件”,即App.configuration文件。通常是默认就用的不同加入。

    注意的是一定要加入在UI层。由于程序是从UI层開始读取的。

    配置文件的内容例如以下:

           

    <configuration>
        <appSettings>        
           <add key ="Constr" value ="Data Source=localhost;Initial Catalog=User;User ID=sa;Password=123456"/>
        </appSettings>
    </configuration>

            然后在D层读取配置文件:

           

    Dim strCon As String = System.Configuration.ConfigurationSettings.AppSettings("Constr")

            这样。假设我们须要更换数据库,直接更改连接配置文件里的字符串就能够了。不须要更改程序代码。

            第二处:在DBFactory工厂类中,实例化D层的Sqlserver类时。在App.config文件里再加上名为“DB”的key,并赋值,例如以下:

        

    <configuration>
        <appSettings>
            <add key="DB" value="Sqlserver"/>         
           <add key ="Constr" value ="Data Source=localhost;Initial Catalog=User;User ID=sa;Password=123456"/>
        </appSettings>
    </configuration>

            然后,在DBFactroy工厂类中,读取配置文件。

           

        Dim strDB As String = ConfigurationSettings.AppSettings("DB")
    
        Public Shared Function CreateUserDAO() As IDAL.IUserInfo
            Dim ClassName As String
            ClassName = AssemblyName + "." + DB
            Return CType(Assembly.Load(AssemblyName).CreateInstance(ClassName), IDAL.IUserInfo)
        End Function




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#
    Webstorm10.0.3破解程序及汉化包下载、Webstorm配置入门指南
    用Log Parser Studio分析IIS日志
    使用SQL语句创建和删除约束
    MVC Controller 基类中的Request
    Entity Framework 4.1 绕过 EF 查询映射
    Bash脚本编程学习笔记09:数组
    CentOS 7上的系统管理之:Systemd和systemctl
    Linux是如何启动的?
    CentOS 7上的进程管理
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4708131.html
Copyright © 2011-2022 走看看