科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Jbuilder2006连接SQL_Server2000数据库的心得

Jbuilder2006连接SQL_Server2000数据库的心得

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Jbuilder2006连接SQL_Server2000数据库的心得

作者: langqian 来源:赛迪网技术社区 2007年11月29日

关键字: 数据库 连接 JBuilder

  • 评论
  • 分享微博
  • 分享邮件
近日想把原来做的一个单机版的工资统计软件做成网络版,可费了不少精力和时间。为方便朋友们以后解决类似问题,现把这几天的工作过程总结如下: Vny!O8  
我的开发环境为:JDK1.5+Jbuilder2006+SQL_Server2000 sp3 p Wx~  
首先,配制环境,其中包括下载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是我们要的驱动。然后配制环境变量: [s/,\p k  
在classpath这个环境变量里加入以下语句: gIe29z[  
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; 0g9Oe9,-4*  
如果你的机子上正确配制了JDK的环境变量就应该有CLASSPATH这个环境变量,若没有就新建一个。 a)J:M|^C  
其实配环境变量的目的就是让系统能找到驱动程序,如果不配,执行下面一段代码时会产生无法找到驱动的异常,导致程序无法执行。 J-Dt%' 8#  
做完上述事情后,我用UltraEdit这个软件先写了连接数据库的代码来试验,代码如下: 8OjNSiJ>d  
/* try to connct SQL_Server database*/ 4`*}ra_\H;  
import java.sql.*; =;: vl;//,  
public class Sql_db_test{ >gM* N  
Connection con; lCo`]w+  
Statement sta; ~"(O(z>  
ResultSet rs; RU'fy_V  
String sql_driver; w;uw*zYW  
String sql_url; z(MZFI) }  
String user; <+CcJ?  
String pwd; Sa,LRp^n:z  
public Sql_db_test(){ : *_f iR3  
sql_driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//驱动 wf] B;xzv  
sql_url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=manage";//语句一,其中manage是要访问的数据库名 :2ceJF  
user="xiaolin";//你要访问的数据库用户名 ;^7XG.V  
pwd="123456";//访问数据库的密码 9x+.tW'U  
init(); 8')xJ.uc  
} B8xCao;  
public void init() E@'E& I 0  
{ \jRT'RR  
try{ *y^E \k`  
Class.forName(sql_driver);//加载驱动 ujt`&.  
System.out.println("driver is ok"); =P; J':^  
con=DriverManager.getConnection(sql_url,user,pwd); 11O# ] ,  
System.out.println("connection is ok"); ONnUJx{ ,  
sta=con.createStatement(); H^: $h<+  
rs=sta.executeQuery("select * from 制衣表");//executeQuery `+<*q gn  
while(rs.next()) T^[;$y  
System.out.println(rs.getString("款式")); Ko;Ll  
}catch (Exception e) L,zer7  
{ PQCWy8@s  
e.printStackTrace();//printStackTrace(); 4&^Cs cz  
} je]jp1p  
} =w ZZf t`  
public static void main(String[] args) A3X x YEU  
{ rsLG0}*  
new Sql_db_test(); HrbT-0 j  
} ', w5<+  
} e.[S `& ^  
将上边的代码保存后,在命令提示行里执行 8%0,2Tn6_  
Javac Sql_db_test.java   //编译正常通过 aG zN  
Java Sql_db_test       //产生异常,异常如下 4;,d2V'  
JJ7D) n  
driver is ok .z U^XDqJ  
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis 2cic9Xg2  
hing socket. 04Ia|  
  at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source  N}"6jbk  
) *Fooh4Tmr  
  at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) Z$+;/?i  
  at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) 0e_4"t<%.c  
  at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source) :QJC%!tU.  
PGm0U$eo=  
  at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou St\iM[  
rce) Bp8g;9<  
  at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S 9aB8u18aV  
ource) \Ms`HCDL}  
  at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source) Y^TMi-L?4  
  at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source) D`ls~#v^  
  at java.sql.DriverManager.getConnection(DriverManager.java:523) 0H# {qQ_u  
  at java.sql.DriverManager.getConnection(DriverManager.java:171) R3JC|WU<  
  at DbTest.init(DbTest.java:32) yrp)=Q$ \o  
  at DbTest.<init>(DbTest.java:25) 9$,3 {v9V,  
  at DbTest.main(DbTest.java:46) Us4Sr(c%c  
Press any key to continue... G(`2p=z  
出现上边错误的主要原因是默认的数据库服务器端口 1433没有打开,无法直接连接 。 Dc S\yX8I  
这时你在命令提示行中输入命令:netstat –an 来查看有没有tcp:0.0.0.0:1433,如果没有那就肯定是因为数据库服务器端口 1433端口没开。这时你需要下载SQL_Serve20000的sp3补丁,下载安装后会发现1433端口已经打开了,再次执行程序,顺利执行完毕。 !F9f?_sl  
上面是在一台电脑上执行的,接下来我将上面的程序放到另一台电脑(可认为是客户机,ip:192.168.1.2),用直连线将两台电脑连起来,这样原来的电脑就变成了数据库服务器(ip:192.168.1.1)。并且把程序中的语句一中的localhost改为192.168.1.1,其他不变。 \co N3.8  
执行后又产生establishing socket异常 zIS>]5*Aw  
后来检查发现,在网上邻居中根本看不到对方计算机,然后重新设置网络并打开guest用户,放开权限。 bg8++AF.  
使网上邻居中能出现对方计算机,然后再次执行程序,顺利执行完毕。 e^X3V  
接下来,开始加入Jbuilder2006了,我在Jbuilder中写了一个连接数据库的类,其他地方做了相关修改,因为代码太多,无法在这些出来。这里只把问题写出来: q^{U-%;9  
没想到的是,都修改完之后,软件运行时居然出现下面异常: OZec?vO  
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver +=cxd)  
    at java.net.URLClassLoader$1.run(Unknown Source) 9GBpNVZ-  
    at java.security.AccessController.doPrivileged(Native Method) GC ty382  
    at java.net.URLClassLoader.findClass(Unknown Source) * }%~  
    at java.lang.ClassLoader.loadClass(Unknown Source) iH<ab_FK'  
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ;\LmJq6+  
    at java.lang.ClassLoader.loadClass(Unknown Source) Q("6i\65G  
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) _>|{/D  
    at java.lang.Class.forName0(Native Method) xeT /$ n%t  
    at java.lang.Class.forName(Unknown Source) Atqw%n8!  
    at Sql_db_test.init(Sql_db_test.java:21) 85=Jms5R1  
    at Sql_db_test.<init>(Sql_db_test.java:16) mYmCHIlxn  
    at Sql_db_test.main(Sql_db_test.java:36) u=(Ejh^{O7  
这不是说驱动找不到吗??为什么??后来在网上一查才知道自己孤陋寡闻,简直太菜了!!!原来在JBUILDER里也得设置驱动程序的路径,设置方法如下: ~XRWPaf3p  
打开Jbuilder, sY-"!U:  
K7}c"I3<ST  
选择Tools-->Configure-->Libraries, K)^}5S  
5 !i>T?fg  
然后在左边的列表框下选择New,填入:Name:sql,Location:User Home,然后点击Add, ':y<Ri/t  
{92of#"9l!  
加入目录C:\Program Files\Microsoft SQL Server 2000 JDBC\lib,确定 @)w*s={ s<  
;+ SU['>v  
三、Project-->Prject Properties-->Paths-->Required Libraries-->Add 87~S~_h  
0V(U83c05  
加入刚才添加的User Home/sql确定 [en[?9d 7  
1M(A:ei@9  
四、Enterprise-->Enterprise Setup-->Database Drivers-->Add,加入User Home/sql, X -%ktztm  
kCeVG  
添加之后在列表框中显示的是sql.config,确定,重新启动JBuilder ;9xn/<6^  
五、Tools-->Database p7qAx,o'  
Pilot-->View-->Options-->Drivers-->Add )mOz{lb  
填入 s$=XZ?"o<  
Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver RwL1t  
Simple URL:microsoft:sqlserver://localhost:1433;DatabaseName=mybase |Q/Y)V  
kiZ.*lcj  
确定之后,Tools-->Database Pilot-->New的Driver里选择 +[mE.L0G  
com.microsoft.jdbc.sqlserver.SQLServerDriver jz>|;&e%"  
在URL里填入: e^4Viq/!  
microsoft:sqlserver://服务器Ip地址或主机名:1433;DatabaseName=数据库名,确定! 5VZM :g/  
双击或点击+号输入sql数据库的用户名和密码,就完成了JB与sql的连接! sPL3%C9D  
之后再运行软件,一切正常。可自己也累得精疲力尽了。 Y'EL>d4C  
至此,我又一次深深了解到软件开发的博大精深,我不过才管窥一斑而已,如果一直走下去,路还很长很长...... #MkM2p  
近期一定努力学习mvc,structs,ejb,spring方向是B/S架构!!
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章