首页 > 开发 > 综合 > 正文

Jbuilder2006连接SQL_Server2000

2024-07-21 02:14:33
字体:
来源:转载
供稿:网友

我的开发环境为: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 制衣表");//executequerywhile(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 okjava.sql.sqlexception: [microsoft][sqlserver 2000 driver for jdbc]error establishing 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 source)  at com.microsoft.jdbc.base.baseconnection.getnewimplconnection(unknown source)  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用户,放开权限。

使网上邻居中能出现对方计算机,然后再次执行程序,顺利执行完毕。

接下来,开始加入jbuilder2006了,我在jbuilder中写了一个连接数据库的类,其他地方做了相关修改,因为代码太多,无法在这些出来。这里只把问题写出来:

没想到的是,都修改完之后,软件运行时居然出现下面异常:

java.lang.classnotfoundexception: com.microsoft.jdbc.sqlserver.sqlserverdriver    at java.net.urlclassloader$1.run(unknown source)    at java.security.accesscontroller.doprivileged(native method)    at java.net.urlclassloader.findclass(unknown source)    at java.lang.classloader.loadclass(unknown source)    at sun.misc.launcher$appclassloader.loadclass(unknown source)    at java.lang.classloader.loadclass(unknown source)    at java.lang.classloader.loadclassinternal(unknown source)    at java.lang.class.forname0(native method)    at java.lang.class.forname(unknown source)    at sql_db_test.init(sql_db_test.java:21)    at sql_db_test.<init>(sql_db_test.java:16)    at sql_db_test.main(sql_db_test.java:36)

这不是说驱动找不到吗??为什么??后来在网上一查才知道自己孤陋寡闻,简直太菜了!!!原来在jbuilder里也得设置驱动程序的路径,设置方法如下:

一、打开jbuilder,选择tools-->configure-->libraries。

二、然后在左边的列表框下选择new,填入:name:sql,location:user home,然后点击add,

加入目录c:/program files/microsoft sql server 2000 jdbc/lib,确定 。

三、project-->prject properties-->paths-->required libraries-->add

加入刚才添加的user home/sql确定

四、enterprise-->enterprise setup-->database drivers-->add,加入user home/sql,

添加之后在列表框中显示的是sql.config,确定,重新启动jbuilder

五、tools-->database

pilot-->view-->options-->drivers-->add

填入

driver class:com.microsoft.jdbc.sqlserver.sqlserverdriver simple url:microsoft:sqlserver://localhost:1433;databasename=mybase

确定之后,tools-->database pilot-->new的driver里选择

com.microsoft.jdbc.sqlserver.sqlserverdriver

在url里填入:

microsoft:sqlserver://服务器ip地址或主机名:1433;databasename=数据库名

点击确定,双击或点击+号输入sql数据库的用户名和密码,就完成了jb与sql的连接!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表