我的配置:
我试过了:
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", "");
}
catch (Exception e) {
e.printStackTrace();
}
但它总是抛出异常:
java.sql.SQLException: No suitable driver
我还尝试了以下网址:
localhost:1433/SQLEXPRESS2008
localhost/SQLEXPRESS2008
localhost
相同的结果。 有什么帮助吗?
答案 0 :(得分:29)
您的网址错误。
我不知道“JDBC 2005”是什么意思。当我查看微软网站时,我发现了一个叫Microsoft SQL Server JDBC Driver 2.0的东西。 你会想要那个 - 它包含许多修复和一些性能提升。 [编辑:你可能会想要最新的驱动程序。截至2012年3月,Microsoft的最新JDBC驱动程序为JDBC 4.0]
查看发行说明。对于此驱动程序,您需要:
URL: jdbc:sqlserver://server:port;DatabaseName=dbname
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver
您的类名似乎正确,但URL错误。
Microsoft在初始发布JDBC驱动程序后更改了类名和URL。您使用的URL与Microsoft的原始JDBC驱动程序一起使用,一个MS称为“SQL Server 2000版本”。但该驱动程序使用不同的类名。
对于所有后续驱动程序,URL已更改为我在此处的表单。
这是JDBC驱动程序的发行说明。
答案 1 :(得分:3)
如果您的databaseName
值正确,请使用此DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")
答案 2 :(得分:3)
sqljdbc4.0
)
按如下方式编写程序:
import java.sql.*;
class testmssql
{
public static void main(String args[]) throws Exception
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;
databaseName=chapter16","sa","123");//repalce your databse name and user name
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from login");//replace your table name
while(rs.next())
{
String s1=rs.getString(1);
String s2=rs.getString(2);
System.out.println("UserID:"+s1+"Password:"+s2);
}
con.close();
}
}
编译程序并设置jar类路径即set classpath=C:\jdbc\sqljdbc4.jar;.;
如果您在下载和解压后在jar
中保存了C:\jdbc
文件。
答案 3 :(得分:0)
可以找到最新的JDBC MSSQL连接驱动程序 JDBC 4.0
类文件应该在类路径中。如果你正在使用eclipse,你可以通过以下方式轻松地做同样的事情 - >
右键单击项目名称 - >属性 - > Java构建路径 - > 图书馆 - >添加外部罐子
正如@Cheeso已经指出的那样,正确的访问方式是jdbc:sqlserver:// server:port; DatabaseName = dbname
同时请找一个访问MSSQL DB的示例类(在我的情况下是2008)。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectMSSQLServer
{
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select * from SampleTable";
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
System.out.println(rs.getString(1));
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD");
}
}
希望这有帮助。
答案 4 :(得分:0)
命名实例?
URL:jdbc:sqlserver:// [serverName] [\ instanceName] [:portNumber] [; property = value]
注意:反斜杠
答案 5 :(得分:-2)
您可以尝试以下操作。在我的情况下工作正常:
希望有所帮助。