以下是纯JDBC连接数据库的代码,但连接不到数据库,抛出异常java.sql.SQLException: No suitable driver

keni4516437 2008-07-17 10:12:28
package jdbc_odbc;

import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Vector;

public class Frame_jbdc
extends JFrame {
public JButton jButton1 = new JButton();
public XYLayout xYLayout1 = new XYLayout();
public JScrollPane jScrollPane1 = new JScrollPane();
public JTable table = new JTable();
DefaultTableModel dt=new DefaultTableModel();
public Frame_jbdc() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
getContentPane().setLayout(xYLayout1);
jButton1.setText("jButton1");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
this.getContentPane().add(jButton1, new XYConstraints(18, 9, 100, 28));
this.getContentPane().add(jScrollPane1, new XYConstraints(44, 54, 313, 196));
jScrollPane1.getViewport().add(table);
dt.addColumn("电脑编号");
dt.addColumn("状态");
dt.addColumn("备注");
//createTableModel();
table.setModel(dt);

}

public void jButton1_actionPerformed(ActionEvent e) {
String url="jdbc:microsoft:sqlserver://";
String serverName="keni";
String portNumber="1434";
String databaseName="netbar";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
try {
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://keni:1433;databaseName=netbar;","sa","123");
Statement s = con.createStatement();
String strSel = "select * from Computer";
ResultSet rs = s.executeQuery(strSel);
if (table.getRowCount() > 0) {
for (int i = 0; table.getRowCount() > 0; i++) {
dt.removeRow(0);
}
}
while (rs.next()) {
Vector v=new Vector();
v.addElement(rs.getString(1));
v.addElement(rs.getString(2));
v.addElement(rs.getString(3));
dt.addRow(v);
}

rs.close();
s.close();
con.close();

}
catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
...全文
666 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaping108 2008-07-19
  • 打赏
  • 举报
回复
按照所有楼上的兄弟的方法问题应该已经解除了
在本机跑的话把keni改成localhost就好了,顺便保证你的数据库名用户名密码都正确就应该没什么问题了
al_you_ge 2008-07-19
  • 打赏
  • 举报
回复
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://keni:1433;databaseName=netbar;","sa","123");
红色的地方换成数据库所在的机器的IP,本机用localhost
keni4516437 2008-07-19
  • 打赏
  • 举报
回复
楼主bootupnow ,按那样修改了但抛出了com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect这样异常
老紫竹 2008-07-19
  • 打赏
  • 举报
回复
参考这个 http://www.java2000.net/viewthread.jsp?tid=394
其实已经线下解决,纯来接分的!
jastby 2008-07-18
  • 打赏
  • 举报
回复
MS SQLServer Java ODBC驱动JAR文件,包括三个文件:

mssqlserver.jar
msutil.jar
msbase.jar

http://www.javawind.net/5b016f381a924efb011a96bd26600004.jhtml

Microsoft 官方下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en
bootupnow 2008-07-17
  • 打赏
  • 举报
回复
release.txt文中有描述
[code=INIFile]
已知问题
------------
下面是有关 Microsoft SQL Server 2005 JDBC Driver 的已知问题:


1) 驱动程序与 SQL SERVER 2000 JDBC DRIVER 之间存在加载冲突

如果您在同一个进程中同时加载 Microsoft SQL Server 2000 JDBC Driver
和 Microsoft SQL Server 2005 JDBC Driver,在某些情况下,2000 版
JDBC 驱动程序将错误地接受 DriverManager.getConnection 方法调用,而
该调用实际是针对 2005 版 JDBC 驱动程序的。

产生这一问题的原因是:如果首先加载 2000 版 JDBC 驱动程序,则此驱动程
序将错误地接受 URL 前缀“jdbc:sqlserver://”。

若要解决此问题,请先加载 2005 版 JDBC 驱动程序类,如下所示:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 版
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 版

这将确保 URL 前缀“jdbc:sqlserver://”由 2005 版 JDBC 驱动程序处理,而
URL 前缀“jdbc:microsoft:sqlserver://”由 2000 版 JDBC 驱动程序处理。
[/code]
bootupnow 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wpc4321 的回复:]
引用楼主 keni4516437 的帖子:

com.microsoft.sqlserver.jdbc.SQLServerDriver



找到这个类在哪个jar文件中,将这个jar包放到classpath路径中
[/Quote]
你既然用的jdbc for mssql 2005的jar,
那么url就不要这样写jdbc:microsoft:sqlserver:.......
应该写成:jdbc:sqlserver:....................

Readme.txt貌似是有说明的,你下载jar的时候要看看!
mengweilil 2008-07-17
  • 打赏
  • 举报
回复
没sql server的驱动嘛

找一个就好了。

你的代码一看就是jbuilder的,不需要另外说明了。
keni4516437 2008-07-17
  • 打赏
  • 举报
回复
我是用JBUILDER编译的,不在DOS下运行的.
巧乐之 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 keni4516437 的帖子:]

com.microsoft.sqlserver.jdbc.SQLServerDriver

[/Quote]

找到这个类在哪个jar文件中,将这个jar包放到classpath路径中

81,092

社区成员

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

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