如何在MS SQL Server 2008 Express中使用MS JDBC驱动程序?

时间:2009-02-12 08:28:32

标签: java sql-server jdbc

我的配置:

  • Windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express,通过端口1433上的tcp / ip公开
  • 类路径中的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

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

6 个答案:

答案 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)

  1. 从Microsoft网站
  2. 下载最新的JDBC驱动程序(即sqljdbc4.0
  3. 按如下方式编写程序:

    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();
        } 
    }
    
  4. 编译程序并设置jar类路径即set classpath=C:\jdbc\sqljdbc4.jar;.;如果您在下载和解压后在jar中保存了C:\jdbc文件。

  5. 运行程序并确保已启用TCP / IP服务。如果未启用,请按照下列步骤操作:
    1. 转到开始 - >所有程序 - > Microsoft SQL Server 2008 - >配置工具 - > SQL Server配置管理器
    2. 展开Sql Server网络配置:选择您的MS SQL Server实例即。 MSQSLSERVER并启用TCP / IP。
    3. 重新启动MS SQL Server实例。这也可以通过MS SQL服务器实例根级别的Microsoft SQL Server Management Studio的右键菜单来完成。

答案 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)

您可以尝试以下操作。在我的情况下工作正常:

  1. 下载当前的jTDS JDBC Driver
  2. 将jtds-x.x.x.jar放入类路径中。
  3. 将ntlmauth.dll复制到windows / system32。根据您的硬件x86,x64 ......
  4. 选择dll
  5. 连接URL为:'jdbc:jtds:sqlserver:// localhost:1433 / YourDB',您不必提供用户名和密码。
  6. 希望有所帮助。