為什么以config形式配置數據庫連接?
因為如果將數據庫連接配置成config,能夠符合包的類型需求,能夠更方便的進行編輯和應用。
將數據庫連接配置成config,config對象對應于javax.servlet.servletConfig類,此類位于servlet-api.jar包中。
需要注意的 VS2005 在IDE模式下會將信息寫入 *.vshost.exe.config,并且在程序關閉時覆寫該文件,因此您可能看不到您寫入的配置數據,只要在資源管理其中執行 *.exe 文件,您就可以在 *.exe.config 文件中看到結果了。
config對象的幾個方法:
(1)public String getParameter(String name);
返回制定的名稱name初始化參數的值,如果參數不存在則返回null。
(2)public java.util.Enumeration getinitParameterNames();
得到所有初始化參數名稱的枚舉。
(3)public ServletContext getServletContext();
返回Servlet或JSP頁面所屬的ServletContext的一個引用。
(4)public String getServletName();
返回Servlet實例或JSP頁面的名稱,此名稱可以在Web應用部署描述文件中指定,對于一個未注冊(也就是未命名)Servlet實例或JSP頁面,將返回該Servlet類的類名。
在網站開發中,數據庫操作是經常要用到的操作,ASP.Net中一般做法是在web.config中配置數據庫連接代碼,然后在程序中調用數據庫連接代碼,這樣做的好處就是當數據庫連接代碼需要改變的時候,我們只要修改web.config中的數據庫連接代碼即可,而不必在修改每一個頁面中的數據庫連接代碼。
在ASP.NET中有兩種配置數據庫連接代碼的方式,它們分別是 appSettings 和 connectionStrings 。在使用 appSettings 和 connectionStrings 配置數據庫連接代碼時,可分別在 <configuration> 下添加如下代碼:
1. appSettings
< appSettings >
< add key ="conn" value ="server=服務器名;database=數據庫名;uid=用戶名;password=密碼;" />
</ appSettings >
2. connectionStrings
< connectionStrings >
< add name ="conn" connectionString ="server=服務器名;database=數據庫名;uid=用戶名;password=密碼" providerName ="System.Data.SqlClient" />
</ connectionStrings >
appSettings 和 connectionStrings 的區別:(摘自http://www.cnblogs.com/kerry1986/archive/2009/07/08/1518895.html)
(1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;
(2) 使用 connectionStrings 的好處:
第一,可將連接字符串加密,使用MS的一個加密工具即可;
第二,可直接綁定數據源控件,而不必寫代碼讀出來再賦值給控件;
第三,可方便的更換數據庫平臺,如換為 Oracle 數據庫,只需要修改 providerName。
(3) 寫在 appSettings 中用 System.Configuration.ConfigurationManager.AppSettings["keyname"] 獲取數據庫連接代碼值;寫在 connectionStrings 中用 System.Configuration.ConfigurationManager.ConnectionStrings["name"] 獲取數據庫連接代碼值。
通過ADO.Net連接程序和SQLServer數據庫的連接字符串:
connectionString ="server=(local);database=Demo;integrated security=true"
直接將連接字符串放在程序中的缺點:多次重復,違反了DRY(Don‘t Repeat Yourself)原則;如要修改連接字符串就要修改代碼。
最好的辦法是將連接字符串寫在App.config中,
(1)具體步驟如下:
添加APP.config文件:添加→新建項→常規→應用程序配置文件。App.config是.Net的通用配置文件,在ASP.Net中也同樣使用。
在App.config中添加connectionStrings段,添加一個add項。用name屬性起一個名字(比如 ConnStr ),connectionString屬性指定連接字符串。
如下:
<connectionStrings>
<add name="ConnStr " connectionString="server=(local);database=ktv;Integrated Security=true"/>
</connectionStrings>
注意:一個程序可以添加多個連接字符串
那么如何在程序中讀取配置文件中添加的這個連接字符串呢?
(2)使用ConfigurationManager類讀取配置文件中的連接字符串
必須要先在引用中添加System.Configuration程序集的引用。
添加引用后可以使用System.Configuration空間下的ConfigurationManager類了。(一般寫在SqlHelp類中)
string connectString=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; //讀取配置文件中的連接字符串
using(SqlConnection conn = new SqlConnection(connectString))
{
conn.Open();
}
通過上面的總結,我們不難得到:
把連接字符串寫到配置文件里的優點:避免了連接字符串放在程序中的缺點,每次連接數據庫時都要重復粘貼一長串的連接字符串。如果哪天我們數據庫服務器的IP改動了,我們只需要修改程序配置文件(***.exe.config)中的數據庫的IP就好了,修改起來非常的方便。