论文部分内容阅读
摘要:随着SQL Server 2005数据库使用的普及,在Java 应用程序中使用基于Java Database Connectivity (JDBC)的驱动程序来访问SQL Server 2005数据库已经成为十分必要的工作。特别是随着XML成为工业标准,越来越多的Java应用程序趋向于使用XML配置文件。论文结合实例讲述了在JSP/Servlet中使用JDBC驱动及XML配置文件访问SQL Server 2005数据库的典型应用方式。
关键词:JDBC; SQL Server 2005; XML; JDOM; JSP/Servlet; JBuilder
中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
1 引言
JSP是一种基于Java Servlet的Web开发技术。目前,JSP/servlet 结合大型或超大型网络数据库已经成为电子商务站点的流行架构。在传统的网页HTML文件中加入Java程序代码,就构成了JSP页面。当Web服务器上的一个JSP页面被第一次请求执行时,JSP引擎首先将此JSP页面文件转译成一个java Servlet文件,再将这个java文件编译成字节码文件,然后通过执行字节码文件响应客户请求。
JDBC(Java Database Connectivity)是Java语言访问数据库的一种规范, 它是一个面向对象的应用程序接口(API),是Java核心类库的一部分。为了使JAVA应用程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使用仅依赖java.sql及javax.sql中的接口和类。通过使用JDBC,Java应用程序可以访问各种不同类型的关系数据库,完成建立数据库连接、执行SQL语句进行数据的增、删、改、查操作。JDBC确保了“100%纯Java”的解决方案,利用Java的平台无关性, JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。
随着SQL Server 2005数据库使用的普及,在Java 应用程序中使用基于JDBC驱动程序来访问SQL Server 2005数据库已经成为十分必要的工作。特别是随着XML成为工业标准,越来越多的Java应用程序趋向于使用XML配置文件。下面结合实例讲述在JSP/Servlet中使用JDBC驱动及XML配置文件访问SQL Server 2005数据库的典型应用方式。
2 JDBC驱动程序的下载及设置
首先需要下载SQL Server 2005的JDBC驱动程序,下载后需要对机器的环境变量以及JBuilder或Eclipse开发环境进行配置。
2.1 JDBC驱动程序的下载
首先下载SQL2005的JDBC驱动程序,这是微软官方下载地址:http://download.microsoft.com/download/2/8/9/289dd6a3-eeeb-46dc-9045-d0c6b59bfbc1/sqljdbc_1.1.1501.101_chs.exe。将文件“sqljdbc_1.1.1501.101_chs.exe”下载后解压,会默认解压生成一个名为“Microsoft SQL Server 2005 JDBC Driver”的文件夹。将此文件夹复制到%ProgramFiles%文件夹下(如果系统在C盘则为C:\Program Files)。复制后的文件夹内容如图1所示。
图2 JSP应用程序项目结构图
选择"Project"->"Project Properties"菜单项,打开此项目的属性配置窗口 。切换到"Required Libraries"面板,点击"Add"按钮,向此工程中添加JDBC驱动类库文件,如图3所示。点击"Add"按钮后,选择"New"按钮。在打开的窗口中先给要加载的JDBC驱动起个名字"SQLJDBC"。点击"Add"按钮,再在弹出的窗口中选择安装在"C:\Program Files\sqljdbc_1.1\chs"文件夹下的"sqljdbc.jar"文件后,点击"OK"按钮。此时JDBC驱动程序已加载到当前的项目中,如图3所示。
图4 启用TCP/IP协议
图5 启用TCP/IP协议
3.2 启用SQL Server 2005网络配置中的TCP/IP协议
选择“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server Configuration Manager”菜单,在打开的窗口左侧选择“SQL Server 2005 网络配置”项下面的“SQLEXPRESS的协议”选项,将其对应的TCP/IP协议设置为“启用”,如图5所示。
3.3 配置启用的TCP/IP协议
修改TCP/IP属性,将全部侦听改为“否”,同时将TCP动态端口改为空(让服务器自己选择端口), TCP端口改为1433,如图6所示。重新启动计算机,或重新启动SQL Server2005 express服务。
图7 jdom.jar文件所在位置
图9 JDBC_SQL2005.JSP运行效果
<%@page import="java.io.InputStream,
java.io.IOException,
java.io.FileInputStream,
org.jdom.input.SAXBuilder,
org.jdom.Document,
org.jdom.Element,
org.jdom.JDOMException,
org.jdom.*,
java.sql.*"%>
<%@page contentType="text/html;charset=GB2312" language="java"%>
<html>
<head>
<title>使用JDBC驱动及XML配置访问SQL Server 2005数据库</title>
</head>
<body>
<center>
<%
String ipaddress, port, database, user, password;
Connection con = null;
Statement s = null;
ResultSet rs = null;
try {
//构造一个SAXGBuilder对象
SAXBuilder db = new SAXBuilder();
//取得XML配置文件的绝对路径
String filepath =
pageContext.getServletContext().getRealPath("WEB-INF\\DBConfig.xml");
//创建文档
Document doc = db.build(new FileInputStream(filepath));
//获得这个文档的根元素
Element root = doc.getRootElement();
//获取各个元素的值
ipaddress = root.getChild("ipaddress").getText();
port = root.getChild("port").getText();
database = root.getChild("database").getText();
user = root.getChild("user").getText();
password = root.getChild("password").getText();
//输出从XML文档中提取的配置信息
out.println("数据库所在的服务器IP地址:" ipaddress "<br>");
out.println("端口号:" port "<br>");
out.println("用户名:" user "<br>");
out.println("密码:" password "<br>");
}
catch (JDOMException jdome) {
throw new IOException(jdome.getMessage());
}
try {
//加载JDBC数据库驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (ClassNotFoundException ce) {
System.out.println("JDBC驱动加载失败!");
System.out.println(ce);
}
try {
String str = "select * from dbo.MSreplication_options";
// 创建数据库连接,要提供主机IP地址、端口号、用户名、口令等信息
con = DriverManager.getConnection(
"jdbc:sqlserver://" ipaddress ":" port ";DatabaseName=" database,
user, password);
//执行SQL语句,得到结果集
s = con.createStatement();
rs = s.executeQuery(str);
if (rs.next()) {
out.print(database "数据库成功访问");
}
rs.close();
}
catch (SQLException se) {
System.out.println(database "数据库访问失败!");
System.out.println(se);
}
finally {
try {
if (s != null) {
s.close();
}
if (con != null) {
con.close();
}
}
catch (SQLException se2) {
System.out.println("数据库连接关闭失败!");
System.out.println(se2);
}
}
%>
</center>
</body>
</html>
5 结束语
Java与XML的组合被普遍认为是“黄金组合”。JDBC技术的使用,可以实现对因特网上异构环境的数据库的访问,已经成为Web开发的首选方案。相信随着SQL Server 2005使用的普级,在使用JDBC访问SQL Server 2005数据库时采用XML配置文件也一定会被更广泛的使用。
参考文献:
[1]马斗.专家门诊——JSP开发答疑[M].北京: 人民邮电出版社,2006年5月?P151-152.
[2]imetoo的资料室?数据库安全基本原则[OL].http://imetoo.blog.hexun.com/,2007年10月24日/2007年10月27日.
收稿日期:2008-01-12
作者简介:王萍(1973-),女,湖北汉阳人,计算机应用专业硕士,现为北京电子科技职业学院科技工程学院电子工程系讲师,主要研究方向:信息管理与服务系统架构与开发。
关键词:JDBC; SQL Server 2005; XML; JDOM; JSP/Servlet; JBuilder
中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
1 引言
JSP是一种基于Java Servlet的Web开发技术。目前,JSP/servlet 结合大型或超大型网络数据库已经成为电子商务站点的流行架构。在传统的网页HTML文件中加入Java程序代码,就构成了JSP页面。当Web服务器上的一个JSP页面被第一次请求执行时,JSP引擎首先将此JSP页面文件转译成一个java Servlet文件,再将这个java文件编译成字节码文件,然后通过执行字节码文件响应客户请求。
JDBC(Java Database Connectivity)是Java语言访问数据库的一种规范, 它是一个面向对象的应用程序接口(API),是Java核心类库的一部分。为了使JAVA应用程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使用仅依赖java.sql及javax.sql中的接口和类。通过使用JDBC,Java应用程序可以访问各种不同类型的关系数据库,完成建立数据库连接、执行SQL语句进行数据的增、删、改、查操作。JDBC确保了“100%纯Java”的解决方案,利用Java的平台无关性, JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。
随着SQL Server 2005数据库使用的普及,在Java 应用程序中使用基于JDBC驱动程序来访问SQL Server 2005数据库已经成为十分必要的工作。特别是随着XML成为工业标准,越来越多的Java应用程序趋向于使用XML配置文件。下面结合实例讲述在JSP/Servlet中使用JDBC驱动及XML配置文件访问SQL Server 2005数据库的典型应用方式。
2 JDBC驱动程序的下载及设置
首先需要下载SQL Server 2005的JDBC驱动程序,下载后需要对机器的环境变量以及JBuilder或Eclipse开发环境进行配置。
2.1 JDBC驱动程序的下载
首先下载SQL2005的JDBC驱动程序,这是微软官方下载地址:http://download.microsoft.com/download/2/8/9/289dd6a3-eeeb-46dc-9045-d0c6b59bfbc1/sqljdbc_1.1.1501.101_chs.exe。将文件“sqljdbc_1.1.1501.101_chs.exe”下载后解压,会默认解压生成一个名为“Microsoft SQL Server 2005 JDBC Driver”的文件夹。将此文件夹复制到%ProgramFiles%文件夹下(如果系统在C盘则为C:\Program Files)。复制后的文件夹内容如图1所示。

图2 JSP应用程序项目结构图
选择"Project"->"Project Properties"菜单项,打开此项目的属性配置窗口 。切换到"Required Libraries"面板,点击"Add"按钮,向此工程中添加JDBC驱动类库文件,如图3所示。点击"Add"按钮后,选择"New"按钮。在打开的窗口中先给要加载的JDBC驱动起个名字"SQLJDBC"。点击"Add"按钮,再在弹出的窗口中选择安装在"C:\Program Files\sqljdbc_1.1\chs"文件夹下的"sqljdbc.jar"文件后,点击"OK"按钮。此时JDBC驱动程序已加载到当前的项目中,如图3所示。

图4 启用TCP/IP协议

图5 启用TCP/IP协议
3.2 启用SQL Server 2005网络配置中的TCP/IP协议
选择“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server Configuration Manager”菜单,在打开的窗口左侧选择“SQL Server 2005 网络配置”项下面的“SQLEXPRESS的协议”选项,将其对应的TCP/IP协议设置为“启用”,如图5所示。
3.3 配置启用的TCP/IP协议
修改TCP/IP属性,将全部侦听改为“否”,同时将TCP动态端口改为空(让服务器自己选择端口), TCP端口改为1433,如图6所示。重新启动计算机,或重新启动SQL Server2005 express服务。

图7 jdom.jar文件所在位置

图9 JDBC_SQL2005.JSP运行效果
<%@page import="java.io.InputStream,
java.io.IOException,
java.io.FileInputStream,
org.jdom.input.SAXBuilder,
org.jdom.Document,
org.jdom.Element,
org.jdom.JDOMException,
org.jdom.*,
java.sql.*"%>
<%@page contentType="text/html;charset=GB2312" language="java"%>
<html>
<head>
<title>使用JDBC驱动及XML配置访问SQL Server 2005数据库</title>
</head>
<body>
<center>
<%
String ipaddress, port, database, user, password;
Connection con = null;
Statement s = null;
ResultSet rs = null;
try {
//构造一个SAXGBuilder对象
SAXBuilder db = new SAXBuilder();
//取得XML配置文件的绝对路径
String filepath =
pageContext.getServletContext().getRealPath("WEB-INF\\DBConfig.xml");
//创建文档
Document doc = db.build(new FileInputStream(filepath));
//获得这个文档的根元素
Element root = doc.getRootElement();
//获取各个元素的值
ipaddress = root.getChild("ipaddress").getText();
port = root.getChild("port").getText();
database = root.getChild("database").getText();
user = root.getChild("user").getText();
password = root.getChild("password").getText();
//输出从XML文档中提取的配置信息
out.println("数据库所在的服务器IP地址:" ipaddress "<br>");
out.println("端口号:" port "<br>");
out.println("用户名:" user "<br>");
out.println("密码:" password "<br>");
}
catch (JDOMException jdome) {
throw new IOException(jdome.getMessage());
}
try {
//加载JDBC数据库驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (ClassNotFoundException ce) {
System.out.println("JDBC驱动加载失败!");
System.out.println(ce);
}
try {
String str = "select * from dbo.MSreplication_options";
// 创建数据库连接,要提供主机IP地址、端口号、用户名、口令等信息
con = DriverManager.getConnection(
"jdbc:sqlserver://" ipaddress ":" port ";DatabaseName=" database,
user, password);
//执行SQL语句,得到结果集
s = con.createStatement();
rs = s.executeQuery(str);
if (rs.next()) {
out.print(database "数据库成功访问");
}
rs.close();
}
catch (SQLException se) {
System.out.println(database "数据库访问失败!");
System.out.println(se);
}
finally {
try {
if (s != null) {
s.close();
}
if (con != null) {
con.close();
}
}
catch (SQLException se2) {
System.out.println("数据库连接关闭失败!");
System.out.println(se2);
}
}
%>
</center>
</body>
</html>
5 结束语
Java与XML的组合被普遍认为是“黄金组合”。JDBC技术的使用,可以实现对因特网上异构环境的数据库的访问,已经成为Web开发的首选方案。相信随着SQL Server 2005使用的普级,在使用JDBC访问SQL Server 2005数据库时采用XML配置文件也一定会被更广泛的使用。
参考文献:
[1]马斗.专家门诊——JSP开发答疑[M].北京: 人民邮电出版社,2006年5月?P151-152.
[2]imetoo的资料室?数据库安全基本原则[OL].http://imetoo.blog.hexun.com/,2007年10月24日/2007年10月27日.
收稿日期:2008-01-12
作者简介:王萍(1973-),女,湖北汉阳人,计算机应用专业硕士,现为北京电子科技职业学院科技工程学院电子工程系讲师,主要研究方向:信息管理与服务系统架构与开发。