如何将 MS JDBC 驱动程序与 MS SQL Server 2008 Express 一起使用?

2022-09-04 06:28:21

我的配置:

  • 视窗 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

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


答案 1

您有错误的网址。

我不知道你说的“JDBC 2005”是什么意思。当我查看Microsoft网站时,我发现了一个名为Microsoft SQL Server JDBC驱动程序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. 从微软网站下载最新的JDBC驱动程序(即)sqljdbc4.0
  2. 按如下方式编写程序:

    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. 编译程序并设置 jar 类路径可视化:如果您在下载和提取后已将文件保存在 中。set classpath=C:\jdbc\sqljdbc4.jar;.;jarC:\jdbc

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

推荐