2009-02-12 66 views
13

我的配置:如何在MS SQL Server 2008 Express中使用MS JDBC驱动程序?

  • 的Windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express的,通过TCP/IP暴露在端口1433
  • 在类路径sqljdbc.jar

我试过了:

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 

相同的结果。 有什么帮助吗?

回答

27

您的网址错误。

我不知道你的意思是“JDBC 2005”。当我查看微软网站时,我发现了一些名为Microsoft SQL Server JDBC Driver 2.0的东西。 你会想要那一个 - 它包括许多修复和一些性能改进。 [编辑:你可能会想要最新的驱动程序。截至2012年3月,微软最新的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驱动程序的发行说明。

-2

您可以尝试以下操作。作品在我的情况罚款:

  1. 下载当前jTDS JDBC Driver
  2. 看跌JTDS-x.x.x.jar classpath中。
  3. 将ntlmauth.dll复制到windows/system32。选择基于你的硬件的x86 x86,x64 ...
  4. 连接url是:'jdbc:jtds:sqlserver:// localhost:1433/YourDB',你不必提供用户名和密码。

希望有所帮助。

+2

他们询问如何使用MS驱动程序,而不是JTDS驱动程序。对不起(-1) – javamonkey79 2011-01-12 23:24:20

+0

这个问题不明白,他必须使用MS驱动程序。也许提问者不知道jTDS。一般来说,jTDS已知可以更好地工作,所以也许不是一个直接的解决方案,而是一个很好的选择。 – Adrian 2016-10-07 17:32:48

+0

谢谢你降低7岁的答案。你们是冠军。 – raupach 2016-10-11 07:45:15

3

如果您databaseName值是正确的,然后使用此:DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")

0

最新的JDBC连接MSSQL驾驶者可以在 JDBC 4.0

中发现的类文件应该在classpath中。 >

右键点击项目名称 - - >属性 - > Java构建路径 - > 库 - >添加外部JAR

如果使用的是Eclipse您可以方便地通过执行以下操作执行相同

另外,作为已经被@Cheeso指出了正确的方式来访问为jdbc:SQLSERVER://服务器:端口,数据库名= DBNAME

同时请找在访问MSSQL数据库的样本类(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"); 
    } 
} 

希望这会有所帮助。

3
  1. 从微软的网站
  2. 下载最新的JDBC驱动程序(即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(); 
        } 
    } 
    
  3. 编译程序和设置的罐子类路径即:set classpath=C:\jdbc\sqljdbc4.jar;.;如果您在下载和解压后已将jar文件保存在C:\jdbc中。

  4. 运行该程序并确保您的TCP/IP服务已启用。如果未启用,那么请按照下列步骤操作:
    1. 开始 - >所有程序 - > Microsoft SQL Server的2008 - >配置工具 - > SQL Server配置管理器
    2. 展开SQL Server网络配置:选择你的MS SQL Server实例即MSQSLSERVER并启用TCP/IP。
    3. 重新启动您的MS SQL Server实例。这可以在你的MS SQL Server实例
0

命名实例的根级别也做了从Microsoft SQL Server Management Studio中的右键菜单?

网址为:jdbc:SQLSERVER:// [服务器] [\实例] [:端口号] [;属性=值]

注:反斜杠

相关问题