我绝望了,高手帮忙解答(关于sqlserver2000与jdbc连接)送100分!

JustBT 2003-08-19 04:06:13
源码:
import java.sql.*;
class testdb{
public static void main(String[]args) throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shenyong";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.print(rs.getString("姓名"));
System.out.print(" ");
System.out.println(rs.getString("电话"));
}
rs.close();
stmt.close();
conn.close();
}
}

错误信息:
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer JDBC Dri
ver]Error establishing socket.
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:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at testdb.main(testdb.java:8)
Press any key to continue...

我的msbase.jar;mssqlserver.jar;msutil.jar放在d:\myfile\下,在classpath里我也设置过了,我用的是sqlserver7,请问我的问题出在哪里?
...全文
77 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
star821116 2003-08-19
  • 打赏
  • 举报
回复
照下面的步骤连,肯定没有问题
刚开始连接数据库是比较麻烦的,记得我第一次用JDBC连接数据库的时候弄得我甚是郁闷。
好,下面开始一步一步的来:
我认为供学习使用的DB还是SQL2000比较好,也比较普遍,因为SQL Server也算是一个应用比较广泛的关系型数据库,
而像DB2,Oracle,我都觉得太专业,学习使用没有必要,SQLServer可以装一个个人版就足以学习Java的数据库连接了
我比较反对用Access数据库,引在Core Java中的话说就是:这样的桌面数据库不仅安装和配置有些复杂,而且桥连接驱动程序和
桌面数据库有很多的的局限性,这些局限性很容易导致混乱,所以,人们从这种驱动程序的安装中只能学到很少的真正的数据库知识。
我就以连接SQL 2000为例来说:
首先肯定是下载驱动程序了:
Microsoft JDBC for SQL SERVER的驱动程序;http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp
安装版的不到2M,安装完后开始程序中会出现Microsoft SQL Server 2000 Driver for JDBC,然后有一个HTML Help,其实从中就可以找到连接SQLserver的全部信息
忘了还必须要有SQLServer,大家可以到http://www.codestudy.net/去下载,4in1版本的
装好SqlServer过后,建立一个数据库,名为test,然后建立一个表"NAME",然后输入name字段,char类型,然后让这个字段的值为HelloDB(如果基本的数据库操作不会我就没辙了:)
然后应该把驱动程序类加入到classpath中了,我在上面的帖子说过,应该把\Microsoft SQL Server 2000 Driver for JDBC\lib下面的mssqlserver.jar msutil.jar msbase.jar
这三个文件放在%JAVA_HOME%\jre\lib\ext下面,然后就是测试程序了:
照如下的代码输入程序:
import java.sql.*;

public class SQLTest{
public static void main(String[] args){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM NAME";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println("Your frist field is " + rs.getString("name"));
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
System.err.println(e);
}
}
如果出现HelloDB就说明操作数据库成功了,当然这么顺利我就笑了,我觉得比较常见的问题就是用户sa未与信任 SQL Server 连接相关联。
这个在我刚开始连接数据库的时候也遇到过,但是后来不知怎么的弄好了也没有深入研究了。那天在这个帖子
http://expert.csdn.net/Expert/topic/2028/2028251.xml?temp=.5175592zez(思恩 为老婆多挣钱 鹤清风) 大哥的回复中才知道,要修改sql server 为sql 和 windows验证
不能是只有windows验证,所以才连不上。
然后我说说怎么在JBuilder中配置SQLServer的连接,在这里我引用一下beyond_xiruo大哥的文章《在JBuilder中使用com.microsoft.jdbc.sqlserver.SQLServerDriver连接sql数据库 beyond_xiruo》
原文在http://www.csdn.net/Develop/Read_Article.asp?Id=15098
一,你确定你安装的jdbc是否完全版,因为有个单机版只能连接本机上的sql,单机版约2m,完全版约6.5m
二、安装好jdbc后,假如目录在C:\Program Files\Microsoft SQL Server 2000 JDBC,打开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确定
四、Tools-->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的连接!
然后你就可以查看你这个数据库中的资源了,我用JB就是这样连接的:)(个人表示感谢xiruo大哥:))
JustBT 2003-08-19
  • 打赏
  • 举报
回复
是驱动的原因吗?
remanwang 2003-08-19
  • 打赏
  • 举报
回复
你的驱动只支持sql 2000
chashui 2003-08-19
  • 打赏
  • 举报
回复
天天在 csdn 混,什么都不会有
javahui 2003-08-19
  • 打赏
  • 举报
回复
登不上去那好办了,打开“服务器网络实用工具”,点“启用的协议”里“TCP/IP”的属性,然后填端口1433就行了。

我的是SQL 2000,不知道SQL 7是不是这样的。
JustBT 2003-08-19
  • 打赏
  • 举报
回复
我用的是混合认证,
telnet localhost 1433登不上去。
我该怎么办?
JustBT 2003-08-19
  • 打赏
  • 举报
回复
up
zez 2003-08-19
  • 打赏
  • 举报
回复
换sql server2000 试试

------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
javahui 2003-08-19
  • 打赏
  • 举报
回复
你telnet localhost 1433看看,能不能登上去?
scbb 2003-08-19
  • 打赏
  • 举报
回复
晕刚看到你用的是sqlserver7.....
可能有点问题。

你的jdbc driver应该是找到了。
scbb 2003-08-19
  • 打赏
  • 举报
回复
1.服务没有开
2.没有使用windows sqlserver混合认证
3.网断了(你的肯定不是)

我就知道这点。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧