【问题标题】:MSSQL server 2005-JDBC connectionMSSQL 服务器 2005-JDBC 连接
【发布时间】:2012-05-12 06:43:27
【问题描述】:

我正在尝试使用 JDBC 在 JAVA 中连接 Microsoft SQL Server 2005,但出现以下异常。我的项目没有在 Eclipse 中运行,它说“找不到请求的资源”(完成所有服务器配置以及从服务器添加和删除项目),当我从控制台运行它时,它显示“找不到类异常”我已经放JARs 通过使用构建路径并放入 WEB-INF/lib。但没有得到连接是我的代码。

import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.Statement; 

import com.microsoft.sqlserver.jdbc.SQLServerDriver;
/** 
 * @author www.javaworkspace.com 
 *  
 */  
public class SMSdao {  
    public static void main(String[] args) {  
        try {  

         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection connection = DriverManager  
                    .getConnection(  
                            "jdbc:sqlserver://192.128.10.17:1433;databaseName=TEK_R;selectMethod=cursor",  
                            "sa", "sai@123");  

            System.out.println("DATABASE NAME IS:"  
                    + connection.getMetaData().getDatabaseProductName());  
            Statement statement = connection.createStatement();  
            ResultSet resultSet = statement  
                    .executeQuery("SELECT * FROM dbo.SMS_OUT");  
            while (resultSet.next()) {  
                System.out.println("Message:"  
                        + resultSet.getString("MessageIn"));  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

堆栈trcae是:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at SMSdao.main(SMSdao.java:13)

尝试了一切并完成了我在网络上找到的所有事情。我在 Windows 7 上使用 jdk 7 和 tomcat 6。

【问题讨论】:

    标签: java sql-server eclipse jdbc


    【解决方案1】:

    您需要从 microsoft 下载 SQLServerDriver JDBC。 Class.forName 正在搜索您指定的类名称,但在您的类路径中找不到它。

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

    只需将 jar 放在您的项目类路径中(tomcat 的共享库更好)。

    【讨论】:

    • 嘿丹尼尔我已经完成了所有这些事情,但现在它显示的是“找不到包 com.microsoft.sqlserver.jdbc”的编译时错误。
    • Tomcat 的服务器运行时是否存在于您项目的构建文件中?
    • 是的,Tomcat 的服务器运行时存在于项目的构建路径中。
    • 我建议检查你所有的类路径配置。肯定有问题。
    【解决方案2】:

    我还建议改用 jTDS:http://jtds.sourceforge.net/

    从历史上看,微软的 JDBC 驱动程序未能完全实现 JDBC 规范中重要且有用的部分。 jTDS 应该功能更全面,并且是开源的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      相关资源
      最近更新 更多