Java JDBC驱动程序连接问题(sun.JDBC.odbc.JdbcOdbcDriver)

Java JDBC驱动程序连接问题(sun.JDBC.odbc.JdbcOdbcDriver),java,sql-server,dsn,jdbc-odbc,Java,Sql Server,Dsn,Jdbc Odbc,我在与Java和SQL 2008 Express的连接方面遇到一些问题。我正在使用sun.jdbc.odbc.JdbcOdbcDriver驱动程序进行连接,并通过管理工具创建了我的dsn,这是我正在使用的代码: import java.sql.*; public class JdbcFirstTry { public static void main(String args[]) throws SQLException { try {

我在与Java和SQL 2008 Express的连接方面遇到一些问题。我正在使用
sun.jdbc.odbc.JdbcOdbcDriver
驱动程序进行连接,并通过管理工具创建了我的dsn,这是我正在使用的代码:

import java.sql.*;

public class JdbcFirstTry 
{
     public static void main(String args[]) throws SQLException
     {

         try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                Connection con = DriverManager.getConnection("jdbc:odbc:movie_archive_DSN");
                System.out.print("you made connection");
          }
          catch (Exception e)
          {
             e.printStackTrace();
          }
    }
}
这就是我得到的错误:

未找到数据源名称,未指定默认驱动程序

有人能就如何修复此错误提供建议吗?此外,tcp/ip已启用,端口设置为1433

我也尝试过这种方法,但不断出现超时错误:

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

      String connectionUrl = "jdbc:sqlserver://WALSER:1433;databaseName=MYSQLDATABASE;user=walser/kyle;password=brenna1020;";

      Connection con = DriverManager.getConnection(connectionUrl);
错误是:

到主机WALSER端口1433的TCP/IP连接失败。错误: “连接被拒绝:连接。请验证连接属性。使 确保主机上正在运行SQL Server实例,并且 正在端口接受TCP/IP连接。请确保TCP 与端口的连接未被防火墙阻止。“


要解决没有默认驱动程序的问题,您需要指定特定于数据库的驱动程序的类型,例如

  • oracle.jdbc.driver.OracleDriver
    for oracle
  • com;sybase的sybase.jdbc3.jdbc.SybDataSource

  • 其次,请在连接呼叫中添加用户名和密码。

    正如您所说,您的协议(TCP)已禁用,因此让我们使用一些代码激活它:) 来源于

    运行上述代码后,您需要重新启动服务器,还需要sysadmin规则:)

    如果上述代码不起作用,请转到开始->所有程序->Microsoft SQL server 2008->配置工具->SQL server配置管理器

    然后从左侧窗格中选择“SQL Server网络配置”,并选择所需的实例,然后从右侧窗格中启用TCP/IP,然后重新启动服务器

    然后在Java应用程序中,您需要更改类名和连接字符串 下载库之后,将其添加到类路径,现在您的代码如下

    public class JdbcFirstTry 
        {
          public static void main(String args[]) throws SQLException
         {
    
             try {
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    
                    Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DatabaseName;integratedSecurity=true;");
                    System.out.print("you made connection");
              }
              catch (Exception e)
              {
    
                 e.printStackTrace();
             }
    
         }
    
        }
    
    在上面的integratedSecurity=true表示使用windows帐户进行连接,但很简单,您可以添加用户名和密码,连接字符串为
    user=MyUserName;密码=******


    最后,请尝试将结果通知我dude,希望您能运行它:)

    如果您使用的是64位Windows 7,请转到

    C:\Windows\SysWOW64 并搜索odbcad32.exe

    从那里您可以获得ODBC数据源管理员
    创建dsn

    正如上面所说的那样,请检查操作系统和代码中的名称是否相同所有名称拼写是否正确。还有其他可能吗?你能直接通过操作系统ping数据源吗?检查一下。顺便说一句,为什么不直接连接到SQL Server?ODBC会吃掉您的性能伙伴,只需启用,下载驱动程序,并建立直接连接:)您仍然需要dsn才能使用户名和pswd正常工作吗?没有伙伴,您需要设置用户并通过dns绑定(在操作系统中),无需在Java应用程序中再次指定。请检查每件事,检查数据库是否正在运行,检查操作系统是否能够ping数据库(在dns绑定期间),检查ds名称是否相同,我知道这只是一个简单的问题:)
    public class JdbcFirstTry 
        {
          public static void main(String args[]) throws SQLException
         {
    
             try {
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    
                    Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DatabaseName;integratedSecurity=true;");
                    System.out.print("you made connection");
              }
              catch (Exception e)
              {
    
                 e.printStackTrace();
             }
    
         }
    
        }