【问题标题】:Connecting to an SQL server using Java使用 Java 连接到 SQL 服务器
【发布时间】:2011-06-16 16:43:05
【问题描述】:

我需要使用 Java 连接到 Microsoft SQL 服务器。

我下载了驱动,不管我怎么做elipse和netbeans都找不到驱动。

当我感到沮丧时,我还下载了 MySql 驱动程序,但我又遇到了同样的异常。

我在环境变量中添加了驱动程序路径,并在我的项目库中包含了 jar 文件。

这是我的项目的图片:

http://i56.tinypic.com/1ekple.jpg

我做错了什么?

非常感谢, 伊丹。

【问题讨论】:

  • “当我感到沮丧时,我还下载了 MySql 驱动程序”你在想什么? MS SQL != MySQL。
  • 尝试使用com.mysql.jdbc.Driver 连接msql: 肯定行不通。 MS SQL JDBC 驱动程序的错误信息是什么?
  • 我安装了一个mysql服务器试一下,我没有尝试使用MS驱动连接到mysql服务器。这就是我使用 MS 驱动程序时发生的情况:i54.tinypic.com/2prcx7k.jpg
  • 阅读 jTDS 常见问题解答。 URL format for jTDS 与 MS SQL JDBC 驱动程序使用的不同。

标签: java sql-server driver


【解决方案1】:

几个问题:

  1. 您的 JDBC url 应该是 jdbc:mssql 而不是 jdbc:msql
  2. 端口用于 SQL Server 通常是 1433,而不是 8888 但可以配置。
  3. 驱动程序 指定用于 MySQL 并且不会 工作。

通过下载一个 MS SQL JDBC 驱动程序开始纠正,有 2 个流行的变体:

开源:http://jtds.sourceforge.net/

微软:http://msdn.microsoft.com/en-us/sqlserver/aa937724

我都用过,在这两种情况下都没有遇到太多问题。

编辑

我目前唯一的例子是使用微软驱动程序,这里是:

DRIVER: com.microsoft.sqlserver.jdbc.SQLServerDriver

URL: jdbc:sqlserver://localhost:1433;database=<MyDB>

【讨论】:

  • 检查您使用的驱动程序是否在您的类路径中,并且您的 sql server 是否在端口 8888 上运行。如前所述,这不是正常端口。
  • 编辑问题以包含使用微软驱动程序的示例。
【解决方案2】:

连接mysql的url有错别字。

应该是jdbc:mysql://127.0.0.1:8888

我还会仔细检查你的 mysql 服务器是否真的在端口 8888 上运行,因为通常 mysql 在 3306 上回答。

Microsoft 的 SQL 服务器也有多个 JDBC 驱动程序,它们有不同的 url。对于 microsoft 驱动程序,url 看起来像 jdbc:microsoft:sqlserver://localhost:1433

查看驱动程序的文档以获取示例 URL。

【讨论】:

  • mySql服务器是easyphp服务器,8888端口,可以通过cmd连接
  • 使用easyphp,web服务器监听8888端口。Mysql在安装easyphp时默认监听3306端口。
【解决方案3】:

尝试使用 jTDS。它是 Microsoft SQL Server(6.5、7、2000 和 2005)的开源 JDBC 3.0 驱动程序。将 jar 文件放入您的应用程序类路径中。 java.sql 包连同上述驱动程序有助于连接到数据库。

import java.sql.*;

public class testConnection
{
    public static void main(String[] args) 
    {
        DB db = new DB();
        db.dbConnect(
     "jdbc:jtds:sqlserver://localhost:1433/tempdb","sa","");
    }
}

class DB
{
    public DB() {}

    public voidn dbConnect(String db_connect_string, 
  String db_userid, String db_password)
    {
        try
        {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection(
    db_connect_string, db_userid, db_password);
            System.out.println("connected");

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2021-08-09
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    相关资源
    最近更新 更多