一个关于JBuilder连接SQL问题!

蓝色流星 2006-02-27 02:09:30
我的数据库是SQL Server 2000+sp4;操作系统是xp sp2;
在jbuilder9下连接数据库
import java.sql.*;

public class DataClass {
public static void main(String[] args) {
String Drivername="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL="jdbc:microsoft.sqlServer://localhost:1433;DataName=card";
String UserName="sa";
String PassWord="";
Connection SqlCon;
try{
Class.forName(Drivername);
SqlCon = DriverManager.getConnection(dbURL,UserName,PassWord);
System.out.println("success connection");
}catch(Exception e){e.printStackTrace();}
}
}
运行后:
java.sql.SQLException: No suitable driver

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

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

at data.DataClass.main(DataClass.java:14)
请前辈指教!谢谢!
...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazycy 2006-03-18
  • 打赏
  • 举报
回复
1 安装SQLServer 2k SP3补丁
2 在JB工程中的paths--required libraries中把需要的3个SQLServer的jar包加进去
ctbu5019 2006-03-12
  • 打赏
  • 举报
回复
是不是没在JB中引用驱动包??
feixuzhongdelaji 2006-03-02
  • 打赏
  • 举报
回复
下面为引用

前提:1.sql server 2000 任意版本 //本人用的是个人版
2.sql server 2000 sp3升级包
你可以在这里下载http://www.bossed.com.cn/download/detailcp.asp?id=74
3.sql server 2000 jdbc 驱动 //这个就需要自己找了!
4.jdk1.4 //以下的例子是该版本
在以上条件满足的情况下,作以下事情
1.建立新数据库名为:TESTDB ,并在其中建立一个名为test_student的表
包括以下几列(Sno,Sname,Sage,Ssex,Sclass)
2.开始编写你自己的连接数据库的类(我这里是借鉴他人的版权不归我所有),你也可以用自己的方法
class Testj{
public static void main(String args[])
{
String RL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TESTDB";
String user ="king";//这里替换成你自已的数据库用户名
String password = "sql";//这里替换成你自已的数据库用户密码
String sqlStr = "select * from test_student";

try{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println( "类实例化成功!" );
System.out.println("slkdjf");
Connection con = DriverManager.getConnection(RL,user,password);
System.out.println( "创建连接对像成功!" );

Statement st = con.createStatement();
System.out.println( "创建Statement成功!" );

ResultSet rs = st.executeQuery( sqlStr );
System.out.println( "操作数据表成功!" );
System.out.println( "----------------!" );

while(rs.next())
{
System.out.print(rs.getInt("Sno") + " ");
System.out.print(rs.getString("Sname") + " ");
System.out.print(rs.getInt("Sage") + " ");
System.out.print(rs.getString("Ssex") + " ");
System.out.println(rs.getString("Sclass"));
}
rs.close();
st.close();
con.close();
}
catch(Exception err){
err.printStackTrace(System.out);
}
}
}
下面进行调试:
javac Testj.java
java Testj
如果正确输出应该是:
类实例化成功!
slkdjf
创建连接对像成功!
创建Statement成功!
操作数据表成功!
----------------!
2000 小刚 21 男 12
2001 小黄 22 女 12
2002 李娜 20 女 11
2003 王芳 19 女 null
2004 黄明 22 男 11
2005 梅兰 21 女 12
2006 李玉 22 女 15
2007 李平 32 女 12

注意:这里有几点要说明
1.路径问题:
你必须配置你的classpath路径否则他在编译时会抱错
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at Test.main(Test.java:11)
你的路径应该是这样配置:你可以在在安装jdbc驱动后看那里的帮助文档(是英文的);
//这里指在xp系统下
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;
可千万不要写错哟!
2.sp3补丁包问题:
如果你在编译时出现下列问题 那么你需要下载并安装sp3补丁包
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 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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Test.main(Test.java:14)
3.权限问题
如果你出现类似这样的问题
类实例化成功!
slkdjf
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'king' 登录失败。
原因: 未与信任 SQL Server 连接相关联。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(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:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Testj.main(Testj.java:14)

原困是未设置SQL SERVER登录认证模式为混合认证模式,因为SQL SERVER默认安装后认证模式为WINDOWS认证模式,从而导致出错。
解决方法:启动SQLSERVER企业管理器,选择要进行认证模式设置的服务器。右击该服务器,在弹出菜单中选择属性,SQL SERVER将
弹出属性对话框在属性对话框中选择安全性选项,在身份验证处选择“SQL Server和Windows”,然后确定。
pigandpig 2006-03-01
  • 打赏
  • 举报
回复
对!jar
cqlgc 2006-03-01
  • 打赏
  • 举报
回复
根据搂主的错误日志来看,是由于没有找到合适的驱动程序。

建议搂主重新下载SQL SERVER的驱动,来试一下。

驱动程序应该有三个JAR文件。
javastart 2006-03-01
  • 打赏
  • 举报
回复
同意liuzhijie0451(小刘)
zhuozi_467 2006-02-27
  • 打赏
  • 举报
回复
看看这篇帖子吧
http://community.csdn.net/Expert/topic/4546/4546148.xml?temp=.3468592
liuzhijie0451 2006-02-27
  • 打赏
  • 举报
回复
你驱动引用了吗

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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