为什么以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 配置数据库连接代码时,可分别在
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属性指定连接字符串。
如下:
注意:一个程序可以添加多个连接字符串
那么如何在程序中读取配置文件中添加的这个连接字符串呢?
(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就好了,修改起来非常的方便。