4

这是我的第一个Java应用程序,我对JavaNetBeans完全没有经验。

我一直在尝试连接到 sql 并获取一些记录 2 天。问题是关于jdbc驱动的,让我解释一下。我已经下载了 sqljdbc驱动程序,然后按照以下步骤操作:

右键单击项目->选择属性->在左侧单击库->在编译选项卡下-单击添加 Jar/Folder 按钮并选择sqljdbc4.jar文件。那应该没问题吧?

然后我写了这段代码但我无法摆脱这个异常:

  Exception in thread "main" 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:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:30)

这是代码

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url = "jdbc:sqlserver://.\\SQLEXPRESS;databaseName=Northwind; Integrated Security = SSPI ";

    Connection con = null;
    Statement stmt = null;

    ResultSet rs = null;
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");

        con = DriverManager.getConnection(url);
        String sql = "Select Top 3 from * person.Contact";
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
4

3 回答 3

10

According to this page, the class is called SQLServerDriver and not SqlServerDriver. Case is important!

So, try:

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

Note that with newer versions of JDBC, it's not necessary to load the driver class explicitly with Class.forName(...). The page I linked to explicitly explains that you don't have to do it. So, you can just remove the whole line and then it should work.

于 2013-08-24T16:40:14.360 回答
1

Java:NetBeans 中与 MSSQL 的 JDBC 连接

脚步

  1. 从以下网址下载 JDBC: https ://www.microsoft.com/en-in/download/details.aspx?id=11774
  2. 运行 sqljdbc__enu.exe - 在 %Program Files (x86)% 中使用默认目录解压此 zip 文件:Microsoft JDBC DRIVER for SQL Server
  3. 在 NetBeans 中创建新项目
  4. 右键单击项目-选择属性-从左侧面板中选择库-单击添加 JAR/文件夹按钮-选择您的 JAR 文件并打开-确定
  5. 打开 Sql Server 配置管理器 - 在 Sql Server 网络配置下选择 SQLEXPRESS 的协议 - 右键单击​​ TCP/IP - 选择属性 - 将启用更改为是 - 单击 IP 地址 - 转到 IPAll - 将 TCP 动态端口更改为 49169,将 TCP 端口更改为 1433 -应用 - 确定 - 重新启动计算机
  6. 打开运行并键入 Services.msc - 启动 SQL Server Browser
  7. 转到项目并为数据库连接编写代码。

本地数据库连接代码:

String url = "jdbc:sqlserver://YOUR PC NAME;instanceName=SQLEXPRESS;DatabaseName=dbname;integratedSecurity=true";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection myCon = DriverManager.getConnection(url);

Statement myStmt = myCon.createStatement();
ResultSet myRs = myStmt.executeQuery("select * from table name");
于 2016-03-25T11:09:09.890 回答
0

我有关于这个问题的更新。

  1. 转到链接,找到您兼容的 JDBC 驱动程序(我下载了 6.0 版本)。
  2. 在你下载的文件中找到合适的jar(我用的是jre7\sqljdbc41.jar)。
  3. 对于 Intellij Idea,按下Ctrl+Shift+Alt+S并打开项目结构,然后在依赖项部分添加您的 jar 文件。

我希望它也适合你。

于 2020-06-19T20:17:36.793 回答