gpt4 book ai didi

与 Microsoft SQL Server 连接中的 Java 问题

转载 作者:行者123 更新时间:2023-12-02 10:50:56 25 4
gpt4 key购买 nike

如何从我的 java 代码连接到 Microsoft SQL Server?

代码:

public class insert {

public static void main(String[] args) {
try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://LENOVO-PC\\SQLEXPRESS;DatabaseName=dbtest";
Connection connection = DriverManager.getConnection(url , "sa" , "Aa123456");



Statement st = connection.createStatement();
st.executeUpdate("INSERT INTO [dbo].[table] VALUES ('come')");

}
catch (ClassNotFoundException e)
{
e.printStackTrace();
System.exit(1);
}
catch (SQLException e)
{
e.printStackTrace();
System.exit(2);
}

}

}

错误:

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at insert.main(insert.java:12)

Microsoft SQL Server 名称为:LENOVO-PC\SQLEXPRESS并且 sqljdbc.jar 已添加到引用的库中。

最佳答案

您尝试加载的类名com.microsoft.jdbc.sqlserver.SQLServerDriver来自非常旧版本的Microsoft SQL Server 2000 版本的驱动程序。 2005 年左右,Microsoft 将其更改为 com.microsoft.sqlserver.jdbc.SQLServerDriver(请注意 jdbcsqlserver 之间的顺序切换)。当时,他们还将驱动程序 URL 前缀从 jdbc:microsoft:sqlserver: 更改为 jdbc:sqlserver:

换句话说,您需要:

  1. 使用Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")(可选,驱动程序将自动加载)
  2. 将 URL 更改为 jdbc:sqlserver://LENOVO-PC\\SQLEXPRESS;databaseName=dbtest(注意前缀更改和 DatabaseName -> databaseName 。另请参阅Building the Connection URL

使用最新的 JDBC 驱动程序,无需在简单的 Java 应用程序中显式加载驱动程序类,因此您还可以删除 Class.forName 行,而不是执行步骤 1。

另请确保您使用的是最新版本的驱动程序,请参阅 mssql-jdbc project on GitHub ( latest stable version 在撰写本文时为 7.0.0)。

关于与 Microsoft SQL Server 连接中的 Java 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com