Getting ClassNotFoundException on code: “Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”

核能气质少年 提交于 2020-01-13 04:14:46

问题


This is my first Java application and I'm completely inexperienced with Java and NetBeans.

I have been trying to connect to sql and get some records for 2 days. The problem is about jdbc driver, let me explain. I have downloaded sqljdbc driver and then followed these steps:

Right-click Project->Select Properties->On the left-hand side click Libraries->Under Compile tab - click Add Jar/Folder button and select sqljdbc4.jar file. Then it should be ok, right?

Then I wrote this code But I cant get rid of this exception:

  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)

This is the code

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();
    }
}

回答1:


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.




回答2:


Java: JDBC Connectivity with MSSQL in NetBeans

Steps

  1. Download JDBC from: https://www.microsoft.com/en-in/download/details.aspx?id=11774
  2. Run sqljdbc__enu.exe - unpack this zip file in %Program Files (x86)% with the default directory: Microsoft JDBC DRIVER for SQL Server
  3. Create your new project in NetBeans
  4. Right Click on the project - select Properties - select Libraries from left panel - click Add JAR/Folder button - select your JAR file and open - ok
  5. Open Sql Server Configuration Manager - select Protocols for SQLEXPRESS under Sql Server Network Configuration - Right Click on TCP/IP - select Properties - change Enable to Yes - Click IP Addresses - Goto IPAll - Change TCP Dynamic Ports to 49169 and TCP Port to 1433 - Apply - Ok - Restart the Computer
  6. Open Run and type Services.msc - Start SQL Server Browser
  7. Goto project and write code for database connectivity.

Code for Local Database Connectivity:

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");


来源:https://stackoverflow.com/questions/18420675/getting-classnotfoundexception-on-code-class-fornamecom-microsoft-sqlserver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!