当前位置: 首页 > 知识库问答 >
问题:

无法将JDBC与SQL Server连接

秦博达
2023-03-14
 import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class JdbcSQLServerConnection {

        public static void main(String[] args) throws ClassNotFoundException {



            Connection conn = null;
            try {


              String url = "jdbc:sqlserver://microsoft\\SQLEXPRESS;databaseName=crud";
              String userName = "sa";
              String password = "pwd";
              System.out.println("Connected2");
              Class.forName("com.sqlserver.jdbc.SQLServerDriver");
              conn = DriverManager.getConnection(url, userName, password);


                System.out.println("Connected");
                if (conn != null) {
                    DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
                    System.out.println("Driver name: " + dm.getDriverName());
                    System.out.println("Driver version: " + dm.getDriverVersion());
                    System.out.println("Product name: " + dm.getDatabaseProductName());
                    System.out.println("Product version: " + dm.getDatabaseProductVersion());
                }

            } catch (SQLException ex) {
                ex.printStackTrace();
            } finally {
                try {
                    if (conn != null && !conn.isClosed()) {
                        conn.close();
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

输出:-

Connected2 Exception in thread "main"
java.lang.ClassNotFoundException: com.sqlserver.jdbc.SQLServerDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at JdbcSQLServerConnection.main(JdbcSQLServerConnection.java:28)

共有1个答案

西门建安
2023-03-14

显然找不到您试图加载的类(com.sqlserver.jdbc.sqlserverdriver)。

根据Microsoft文档“使用JDBC驱动程序”,您必须通过调用class.forname(“com.Microsoft.sqlserver.JDBC.sqlserverdriver”)来加载JDBC-Driver;--注意comsqlserver之间的Microsoft

如果这没有帮助,您可能希望

sqljdbc4.jar重命名为sqljdbc4.zip,解压缩并检查您试图加载的类是否真的存在于其中...

 类似资料:
  • 官方的SQLServer数据库的JDBC驱动程序 驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver URL格式:jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

  • 我在php中使用firebase作为后端,但当我调用“ServiceAccount”的“fromJsonFile”方法时,我得到以下错误: 致命错误:未捕获错误:调用私有方法Kreait\Firebase\Service帐户::fromJsonFile()从上下文"在C:\xampp\htdocs\wordpress\wp-Content\plugins\firebase-connection.p

  • 这是我的server.js文件 .env文件 我得到这个错误 (节点:16036)UnhandledPromiserEjectionWarning:错误:QueryReqWrap.OnResolve[as oncomplete](dns.js:203:19)处的queryTxt timeout data.ztmkm.MongoDB.NET(使用显示警告是在何处创建的)(节点:16036)Unhan

  • 我想把Tableau和Cassandra联系起来。 Tableau版本:10.0(我也尝试了8.3) Cassandra版本:3.0.8 DataStax Enterprise Server 5.0.2 我能够从Datastax DevCenter连接到Cassandra,所以我认为问题要么在画面端,要么在驱动程序本身。 我尝试了10.0和8.3版本的Tableau,都不起作用。 我遵循了以下指示

  • 当我使用Japser报告生成报告时,我的Spring Boot工作正常。 我面临的问题是应用程序抛出Hibernate异常: 无法获取JDBC连接 在我多次生成报告后,我得到了这个错误。

  • 我有一个Hibernate和光数据源的Spring Boot项目。如果我使用注入的SessionFactory对象来获取会话对象,几天后,我会发现与数据库操作相关的任何方法都有这样的异常(只有重新启动才能解决这个问题): 似乎手动使用的会话使此问题。(我有类似的项目,具有相同的配置和功能,但没有注入SessionFactory和Session...我根本没有这样的问题) 应用程序. yaml: 数