Jbuilder2006连接SQL_Server2000

2008-02-23 08:12:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

我的开发环境为:JDK1.5 Jbuilder2006 SQL_Server2000 sp3

首先,配制环境,其中包括下载JDBC FRO Microsft SQL_Server2000的驱动程序(在微软官方网站下的,是sp3版的,这里就不写具体地址了,网上挺多的,但注意版本,我下的是sp3)。下载后发现是EXE 文件,双击安装。默认安装目录:C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC,其中C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib目录下的三个扩展名为.jar是我们要的驱动。然后配制环境变量:

在classpath这个环境变量里加入以下语句:

C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;

C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;

C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;

如果你的机子上正确配制了JDK的环境变量就应该有CLASSPATH这个环境变量,若没有就新建一个。

其实配环境变量的目的就是让系统能找到驱动程序,如果不配,执行下面一段代码时会产生无法找到驱动的异常,导致程序无法执行。

做完上述事情后,我用UltraEdit这个软件先写了连接数据库的代码来试验,代码如下:

/* try to connct SQL_Server database*/

import java.sql.*;

public class Sql_db_test{

Connection con;

Statement sta;

ResultSet rs;

String sql_driver;

String sql_url;

String user;

String pwd;

public Sql_db_test(){

sql_driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//驱动

sql_url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=manage";//

语句一,其中manage是要访问的数据库名

user="xiaolin";//你要访问的数据库用户名

pwd="123456";//访问数据库的密码

init();

}

public void init()

{

try{

Class.forName(sql_driver);//加载驱动

System.out.println("driver is ok");

con=DriverManager.getConnection(sql_url,user,pwd);

System.out.println("connection is ok");

sta=con.createStatement();

rs=sta.executeQuery("select * from 制衣表");//executeQuery

while(rs.next())

System.out.println(rs.getString("款式"));

}catch (Exception e)

{

e.printStackTrace();//printStackTrace();

}

}

public static void main(String[] args)

{

new Sql_db_test();

}

}

将上边的代码保存后,在命令提示行里执行

Javac Sql_db_test.java //编译正常通过

Java Sql_db_test //产生异常,异常如下

driver is ok

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis

hing socket.

  at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)   

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

  at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

  at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

  at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou

rce)

  at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S

ource)

  at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

  at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

  at java.sql.DriverManager.getConnection(DriverManager.java:523)

  at java.sql.DriverManager.getConnection(DriverManager.java:171)

  at DbTest.init(DbTest.java:32)

  at DbTest.<init>(DbTest.java:25)

  at DbTest.main(DbTest.java:46)

Press any key to continue...

出现上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接 。

这时你在命令提示行中输入命令:netstat –an 来查看有没有tcp:0.0.0.0:1433,如果没有那就肯定是因为数据库服务器端口 1433端口没开。这时你需要下载SQL_Serve20000的sp3补丁,下载安装后会发现1433端口已经打开了,再次执行程序,顺利执行完毕。

上面是在一台电脑上执行的,接下来我将上面的程序放到另一台电脑(可认为是客户机,ip:192.168.1.2),用直连线将两台电脑连起来,这样原来的电脑就变成了数据库服务器(ip:192.168.1.1)。并且把程序中的语句一中的localhost改为192.168.1.1,其他不变。

执行后又产生establishing socket异常

后来检查发现,在网上邻居中根本看不到对方计算机,然后重新设置网络并打开guest用户,放开权限。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:J2ME网络编程以及网络游戏的实现

下一篇:一个实现将动态页面转为静态的方案