【问题标题】:database connectivity?数据库连接?
【发布时间】:2009-12-07 09:13:35
【问题描述】:

如何与 Java 应用程序建立 SQL 2005 数据库连接。其实我不知道如何为 JDBC 设置路径。任何帮助都会很棒。

【问题讨论】:

  • 尝试运行 .jar 文件时显示错误消息“无法从 c:\program files\sqljdbc_2.0.1803.100_enu\sqljdbc_2.0\enu\sqljdbc4.jar 加载主类清单属性“我怎样才能继续前进????
  • JDBC 驱动程序不是一个可执行的 JAR,它是一个你应该在你的代码中使用的库。因此,您需要在运行代码时使其在类路径中可用。有关编程详细信息,请查看与您下载的驱动程序捆绑在一起的示例以及我在回答中提到的示例。

标签: java sql-server-2005 jdbc classpath


【解决方案1】:
  1. http://www.microsoft.com/sqlserver/2005/en/us/java-database-connectivity.aspx下载jdbc驱动。
  2. 您可以下载 Windows 或 Unix 版本。使用哪一种并不重要。
  3. 如果你选择的是Windows版本,运行下载的exe文件;这将在您下载文件的目录中创建一个名为 Microsoft SQL Server 2005 JDBC Driver 的目录。
  4. 将文件Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar 添加到您的类路径(使用java-cp 选项,或者,如果您使用的是应用程序服务器,则将其放在适当的目录中)。
  5. 设置您的连接。基本上,这需要的信息是:
    • 驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver
    • 连接地址:jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

查看Connecting to SQL Server with the JDBC Driver 了解更多详情和/或help 目录中的可用资源(help/samples/connections/ConnectURL.java 中提供示例代码)。

【讨论】:

    【解决方案2】:

    This 是 Microsoft 的 HOWTO,介绍了从何处获取驱动程序以及如何配置它。

    简单地说,从 Microsoft 下载 .jar,在您的类路径中引用它并使用:

    String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
       "databaseName=AdventureWorks;user=MyUserName;password=*****;";
    Connection con = DriverManager.getConnection(connectionUrl);
    

    替换相关信息。

    【讨论】:

    • 您需要将 jar 添加到您的类路径中。运行 java -cp {sql_jar_file.jar} ... 和/或 Google 了解如何使用 jar 文件。
    【解决方案3】:

    此链接将帮助您解决此问题

    jdbc connection mssql

    代码片段

     private java.sql.Connection getConnection(){
              try{
                   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
                   con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
                   if(con!=null) System.out.println("Connection Successful!");
              }catch(Exception e){
                   e.printStackTrace();
                   System.out.println("Error Trace in getConnection() : " + e.getMessage());
             }
              return con;
          }
    
    private String getConnectionUrl(){
              return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
         }
    

    【讨论】:

      【解决方案4】:

      因此,您的实际问题是您不知道如何处理“类路径”现象。

      实际上,类路径是一种磁盘文件系统路径的集合,它指向整个 .jar 文件和/或指向 Java 虚拟机应该存放的带有 .class 文件的某个根文件夹查找要导入和加载的类。

      您可以在编译和运行时使用javac.exejava.exe-classpath-cp 参数指定类路径。 -cp 只是一个简写,它没有什么不同。然后你就有了神秘的%CLASSPATH% 环境变量,你应该完全忘记它。这是一个糟糕的事情,旨在让初学者更容易管理类路径,但最终它只会让他们更加困惑。

      当您使用Class#forName() 加载驱动程序时,您只需在运行时将其放在类路径中,而不是在编译时。下面是一个如何执行它的基本示例:

      java -cp .;c:/path/to/mssql-jdbc-driver.jar com.example.YourClass
      

      你看,类路径由两部分组成,. 代表当前工作目录,c:/path/to/mssql-jdbc-driver.jar 应该是 JAR 文件的绝对路径。 ; 只是一个路径分隔符(在 Windows 中;在 Unix 和克隆中它应该是一个冒号 :)。注意:如果路径包含空格,例如c:/spacy path to/file.jar,那么你需要用双引号将单个路径括起来。

      如果您使用的是 IDE,例如 Eclipse,那么通常的做法是在项目中创建一个文件夹,您可以在其中删除项目所需的所有这些 3rd 方 JAR 文件。创建一个名为 lib 的项目文件夹,将 JDBC 驱动程序放入其中并右键单击项目 > Properties > Java Build Path > Libraries > 添加 JAR > 选择您在项目的lib 中放置的 JAR 文件 > 确定

      应该是这样的。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-29
        • 2010-10-01
        • 2012-12-09
        相关资源
        最近更新 更多