在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解压缩到任意位置,比如解压到Cprogram 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/IPnamed pipes;②选SQL Server Browser->服务->启动类型改为自动”->应用->启动->确定。
(4)
修改默认的登录验证模式(由于在安装过程中是默认按“Windows 身份验证模式方式安装,所以sa登录是被禁用的,即使将身份验证模式更改为“SQL Server Windows 身份验证模式sa登录仍处于禁用状态,所以需要启用sa登录帐户):①在SQL Server Management Studio 的对象资源管理器中,安全性->登录名->右击“sa”->属性->常规->将登录名sa的密码和确认密码设为强密码->状态->登录->启用->确定;②在SQL Server Management Studio 的对象资源管理器中,右击服务器->属性->安全性->服务器身份验证->选择“SQL ServerWindows身份验证模式”->确定->确定。
(5)
SQL Server Management Studio Express中新建一个数据库(例如“ShopSystem”,如果测试程序带有数据库文件也可不用新建而直接附加到当前SQL Server数据库服务器);在SQL Server Management Studio 的对象资源管理器中右击服务器->重新启动->是。

 

 

常见错误

1com.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就不会再报错了,窗口显示为一片黑,即为正常

2com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。

先通过第一步测试看是否能通过 然后确定sa的密码是否正确

再先用Windows身份验证模式登陆,选择服务器属性---安全性,讲服务器身份验证改为SQLWindows身份验证模式,然后将SA账户的状态中登陆设置为启动

 

 

posted @ 2009-05-29 22:54  因是因非  阅读(1147)  评论(0编辑  收藏  举报