注册
 找回密码
 注册
江西广告网
查看: 267|回复: 0
打印 上一主题 下一主题

Jbuilder2006连接SQL2000数据库

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-30 11:16:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  开发环境为: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.(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.(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.(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-->rject Properties-->aths-->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的连接! 之后再运行软件,一切正常。可自己也累得精疲力尽了。 至此,我又一次深深了解到软件开发的博大精深,我不过才管窥一斑而已,如果一直走下去,路还很长很长...... 近期一定努力学习mvc,structs,ejb,spring方向是B/S架构!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表