在Eclipse中使用JDBC连接SQL Server 2005 Express
本文介绍使用JDBC连接SQL
Server 2005的配置、应用和常见错误处理方法。
1.准备工作: 准备相关的软件
(1).Microsoft SQL server
2005 Express Edition
(2).SQL Server Management
Studio
(3).SQL Server 2005 driver
for JDBC
2.安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证,若选用了windows验证,可参考后面方法更改登录方式)
(1) 将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量在环境变量classpath 后面追加 C:\Program
Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar
(2) 设置SQLEXPRESS服务器:
a.打开SQL Server
Configuration Manager -> SQLEXPRESS的协议 -> TCP/IP
b.右键单击启动TCP/IP
c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器
e.关闭SQL Server Configuration Manager
(3) 打开刚刚安装好的 SQL Server
Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample
(4)打开Eclipse
a.新建工程-> java ->
java project,起名为Test
b.选择eclipse->窗口->首选项->java->installed
JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar
c.右键单击目录窗口中的Test, 选择Build Path
->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中
(5) 编写java代码来测试连接数据库
import java.sql.*;
public class test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample"; // 连接服务器和数据库sample
String userName = "sa"; // 默认用户名
String userPwd = "123456"; // 密码
Connection dbConn = null;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); // 如果连接成功
// 控制台输出Connection
// Successful!
} catch (Exception e) {
e.printStackTrace();
}
}
}
注:
1.因为SQLexpress服务器默认是禁用的并且端口号没有配置,所以要进行重新设置
2.如果你以前用java连接sql server 2000的话就要注意了:
在sql server 2000 中加载驱动和URL路径的语句是
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;
DatabaseName=sample";
而sql server 2005 中加载驱动和url的语句则为
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;
DatabaseName=sample";
如果写法错误将会找不到驱动.
Sql server 2005更改登录方式
(1)关闭防火墙。
(2)配置TCP端口:开始->所有程序->Microsoft
SQL Server 2005->配置工具->SQL Server配置管理器->SQL Server
2005 网络配置->MSSQLSERVER协议;启用“TCP/IP”;双击“TCP/IP”->“IP 地址”->“IPAll”->“TCP
端口”项添加默认的“1433”。
(3)外围应用配置:Microsoft SQL Server 2005->配置工具->SQL Server外围应用配置器->服务和连接的外围应用配置器-> ①选SQLEXPRESS->Database
Engine->远程连接->本地连接和远程连接->同时使用TCP/IP和named pipes;②选SQL Server
Browser->服务->启动类型改为“自动”->应用->启动->确定。
(4)修改默认的登录验证模式(由于在安装过程中是默认按“Windows 身份验证模式”方式安装,所以sa登录是被禁用的,即使将身份验证模式更改为“SQL Server 和 Windows 身份验证模式”,sa登录仍处于禁用状态,所以需要启用sa登录帐户):①在SQL Server
Management Studio 的对象资源管理器中,安全性->登录名->右击“sa”->属性->常规->将登录名sa的密码和确认密码设为强密码->状态->登录->启用->确定;②在SQL Server
Management Studio 的对象资源管理器中,右击服务器->属性->安全性->服务器身份验证->选择“SQL Server和Windows身份验证模式”->确定->确定。
(5)在SQL Server Management Studio Express中新建一个数据库(例如“ShopSystem”,如果测试程序带有数据库文件也可不用新建而直接附加到当前SQL Server数据库服务器);在SQL Server
Management Studio 的对象资源管理器中右击服务器->重新启动->是。
常见错误
1、com.microsoft.sqlserver.jdbc.SQLServerException:
到主机 的 TCP/IP 连接失败。
java.net.ConnectException: Connection refused: connect!
故障原因及排除方法:
估计是因为sqlserver2005默认情况下是禁用了tcp/ip连接。
您可以在命令行输入:telnet localhost 1433进行检查,这时会报错:正在连接到localhost...不能打开到主机的连接,在端口 1433: 连接失败
启动tcp/ip连接的方法:
打开 \Microsoft SQL Server 2005\配置工具\目录下的SQL Server
Configuration Manager,选择mssqlserver协议, 然后右边窗口有个tcp/ip协议,然后启动它,把sqlserver服务停了,然后在启动。问题就解决了!
这时在命令行输入:telnet localhost
1433就不会再报错了,窗口显示为一片黑,即为正常
2、com.microsoft.sqlserver.jdbc.SQLServerException:
用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。
先通过第一步测试看是否能通过 然后确定sa的密码是否正确
再先用Windows身份验证模式登陆,选择服务器属性---安全性,讲服务器身份验证改为SQL和Windows身份验证模式,然后将SA账户的状态中登陆设置为启动