在代码上获取ClassNotFoundException:“Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”
这是我的第一个Java应用程序,我对Java和NetBeans完全缺乏经验。
我一直在尝试连接到sql并获取一些记录2天。 问题是关于jdbc驱动程序,让我解释一下。 我已经下载了sqljdbc驱动程序,然后按照以下步骤操作:
右键单击Project-> Select Properties->在左侧单击Libraries-> Compile选项卡 – 单击Add 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(); } }
根据此页面 ,该类称为SQLServerDriver
而不是SqlServerDriver
。 案例很重要!
所以,试试:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
请注意,对于较新版本的JDBC,不必使用Class.forName(...)
显式加载驱动程序类。 我链接的页面明确说明您不必这样做。 所以,你可以删除整行,然后它应该工作。
Java:NetBeans中与MSSQL的JDBC连接
脚步
- 从以下url下载JDBC: https : //www.microsoft.com/en-in/download/details.aspx?id = 11774
- 运行sqljdbc__enu.exe – 使用默认目录在%Program Files(x86)%中解压缩此zip文件:Microsoft JDBC DRIVER for SQL Server
- 在NetBeans中创建新项目
- 右键单击项目 – 选择Properties – 从左侧面板中选择Libraries – 单击Add JAR / Folder按钮 – 选择你的JAR文件并打开 – ok
- 打开Sql Server配置管理器 – 在Sql Server网络配置下选择SQLEXPRESS协议 – 右键单击TCP / IP – 选择属性 – 将启用更改为是 – 单击IP地址 – 转到IPAll – 将TCP动态端口更改为49169,将TCP端口更改为1433 – 应用 – 确定 – 重新启动计算机
- 打开运行并键入Services.msc – 启动SQL Server Browser
- 转到项目并编写数据库连接代码。
本地数据库连接代码:
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");
- classpath – 从命令行运行java程序
- 为什么我得到Class not found例外
- 尝试使用Java连接到SQL Server 2005时出现ClassNotFoundException
- java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory
- 运行时错误:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
- ClassNotFoundException启动Tomcat时的DispatcherServlet(Maven依赖项未复制到wtpwebapps)
- 没有在路径DexPathList上找到类
- ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse
- 启动java.util.concurrent.ExecutionException期间子容器失败