首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取代码上的"Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");“:ClassNotFoundException

获取代码上的"Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");“:ClassNotFoundException
EN

Stack Overflow用户
提问于 2013-08-24 08:30:05
回答 3查看 44.3K关注 0票数 5

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

我一直试图连接到sql,并获得一些记录2天。问题在于jdbc驱动程序,让我解释一下。我下载了sqljdbc驱动程序,然后执行以下步骤:

右击Project->Select >左侧单击Libraries>在编译选项卡下单击Add Jar/文件夹按钮,然后选择sqljdbc4.jar文件。那就没事了,对吧?

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

代码语言:javascript
运行
AI代码解释
复制
  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)

这是密码

代码语言:javascript
运行
AI代码解释
复制
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();
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-24 08:40:14

根据此页的说法,这个类叫做SQLServerDriver,而不是SqlServerDriver。案子很重要!

所以,试着:

代码语言:javascript
运行
AI代码解释
复制
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

注意,对于较新版本的JDBC,没有必要使用Class.forName(...)显式加载驱动程序类。我链接到的页面明确地解释了您不必这样做。所以,你可以去掉整条线,然后它就能工作了。

票数 11
EN

Stack Overflow用户

发布于 2016-03-25 03:09:09

Java: NetBeans中的JDBC连接

步骤

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

本地数据库连接代码:

代码语言:javascript
运行
AI代码解释
复制
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");
票数 1
EN

Stack Overflow用户

发布于 2020-06-19 12:17:36

我有关于这个问题的最新消息。

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

我希望它也适用于你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18420675

复制
相关文章
jdbc连接sql server 2017(mssql)
交代下我的环境 sql server 2017 jdk 12 idea 下载sql server的jdbc 地址:https://www.microsoft.com/zh-CN/download/de
无道
2019/11/12
2.4K0
java 学生信息管理系统
在SQL Server 2005数据库上实现数据操作。使用纯面向对象的java语言作为开发语言
全栈程序员站长
2022/09/14
5.7K0
java 学生信息管理系统
ClassNotFoundException
ClassNotFoundException:org.springframework.web.con text.ContextLoaderListener
the5fire
2019/02/28
9370
SQL Server 数据库连接类
package edu.qdgxy.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //1.加载驱动;2.建立连接3.创建Statement对象4.执行sql 5.关闭资源 public class DBBean { private String drive
week
2018/08/27
2.6K0
理解java中反射,区别Class.forName(),Class.forName().instance() ,new,如果获取对象中的方法和字段「建议收藏」
先了解一些基本的概念:运行时,编译时,编译型,解释型,类加载器,动态加载类 什么是编译?将原程序翻译成计算机语言,就是二进制代码,在java中是将.java文件也就是源程序翻译成.class的字节码 什么是编译时?将原程序翻译成计算机语言的过程中,将.java翻译为.class文件的过程 什么是运行时?就是在启动这个程序的时候,在java中是,类加载器加载.class文件,并交给jvm处理 什么是编译型语言?将原程序一次性全部转换为二进制代码,然后执行程序 什么是解释型语言?转换一句,执行一句,java是既编译又解释的语言 编译型语言和解释型语言的区别:编译型语言效率高,依赖于编译器,但是跨平台差,解释型的效率低,依赖于解释器,但跨平台强 什么是类加载器?类加载器就是JVM中的类装载器,作用就是将编译好的.class字节码运到检查器进行安全检查的,检查通过后开始解释执行 什么是运行时动态加载类? 反射就是可以将一个程序(类)在运行的时候获得该程序(类)的信息的机制,也就是获得在编译期不可能获得的类的信息,因为这些信息是保存在Class对象中的,而这个Class对象是在程序运行时动态加载的 它 就是可以在程序运行的时候动态装载类,查看类的信息,生成对象,或操作生成对象。类在运行的时候,可以得到该类的信息,并且 可以动态的修改这些信息。class对象是在运行的时候产生的,通过class对象操作类的信息是在运行时进行的,当运行 程序的时候,类加载器会加载真正需要的类,什么是真正需要的呢?就是该类真正起作用,如:有该类的对象实例,或该类调用了静态方法属性等
全栈程序员站长
2022/08/09
8360
Class.forName与ClassLoader的区别
今天看Java代理的一些文章的时候,通过动态代理想到了反射的问题,然后就想到了以前面试的时候被问到的一个面试问题: Class.forName与ClassLoader的区别? ,自己当时虽然回答上来了,但是回答的并不具体,今天有空做个整理。
用户5546570
2020/12/07
3410
myEclipse6.5与数据库(SQL Server2008)连接遇到的问题<用SSH框架的时候,用servlet+javabean+jsp的时候>
昨天因为学习SSH框架的搭建,时隔一年又重新遇到了myEclipse连接数据库的问题。废话不多说,上干货 (以下全部按照我遇到的问题的顺序,也就是没有顺序,就是任性) 请注意:这是在myEclipse6.5+SQL Server2008的前提下出现的问题,当用mySQL或者SQL2000以前,或者用oracle云云时,里面用的jar包都不一样的!不可参照下列哦~ 1、MyEclipse 数据库连接创建失败,出现 Driver class not found 这是搭建SSH框架,在数据库连接时加载sqljdb
用户1148399
2018/01/09
1.7K0
myEclipse6.5与数据库(SQL Server2008)连接遇到的问题<用SSH框架的时候,用servlet+javabean+jsp的时候>
Java连接sqlserver(Java项目sqlserver)
大家好,又见面了,我是你们的朋友全栈君。 java相对于其他语言(例如c,c++等)连接数据库要方便得多, 那么,如何连接呢? 1.导入jar包:我这有3个版本 随便下一下即可 链接:h
全栈程序员站长
2022/07/28
3.3K0
Java连接sqlserver(Java项目sqlserver)
JDBC数据库的增删改查简单操作
前言 本次带来的是JAVA的JDBC操作,对数据库进行发送SQL语句,以达到对数据库语言的增删改查操作 需要下载驱动类包 MySQL数据库的JDBC驱动包 https://dev.mysql.com
HcodeBlogger
2020/07/14
1.2K0
【JDBC】JDBC API 详解 ① ( DriverManager 驱动管理类 | 注册驱动 | 建立数据库连接 )
上述反射操作 , 将 com.microsoft.sqlserver.jdbc.SQLServerDriver 类加载到了内存中 , 在该类中 , 定义了如下静态代码块 :
韩曙亮
2023/03/25
1.2K0
java学生宿舍管理系统代码(java简单宿舍管理系统)
需要的工具 1.SQL Server 2.Eclipse 3.JDBC连接数据库驱动 https://download.microsoft.com/download/A/F/B/AFB381FF-7037-46CE-AF9B-6B1875EA81D7/sqljdbc_6.0.8112.200_chs.exe
全栈程序员站长
2022/07/29
1.8K0
java学生宿舍管理系统代码(java简单宿舍管理系统)
Java通过JDBC连接SQl Server各个版本数据库
已经安装好Microsoft SQL Server,下面就要对其进行配置,使eclipse里的Java程序能通过JDBC连接到SQL Server数据库,需要进行一些操作。 1、在“开始”菜单中找到“SQL Server 配置管理器”打开: 2、下面进行配置: 3、点击上图中的“MSSQLSERVER的协议”,在右侧列表中双击“TCP/IP”协议,在弹出的窗口中找到IP是“127.0.0.1”的一项,活动:“是”,已启用:“是”。确认最下面的“IPALL”里,“TCP端口”是“1433”: 最后,关闭
用户1696846
2018/07/16
3.8K0
Java课程设计源码——学生信息管理系统 SQL「建议收藏」
2022.6.9 更新 这个课程作业的代码有小伙伴反馈有问题(数据库无法连接等),但博主最近学业不用Java了,暂时没时间看,如果有同学有解决方案,可以在下面评论帮助一下其他同学。实在抱歉啦。
全栈程序员站长
2022/11/04
1.7K1
理解class.forName()
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118332.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/13
2740
理解ClassNotFoundException与NoClassDefFoundError的区别
但是你知道他们的区别吗?以及什么情况下发生上面的异常? 如果你还不清楚,那么不着急,我们来仔细分析一下:
我是攻城师
2018/10/19
9.4K0
理解ClassNotFoundException与NoClassDefFoundError的区别
什么是JDBC?「建议收藏」
  一、概念   1、什么是JDBC?   JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据   此可以构建更高级的工具和接口,使数据库开发者能够编写数据库的程序。简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。   2、JDBC有什么用呢?   我们用JAVA就能连接到数据库;创建SQL或者MYSQL语句;执行SQL或MYSQL的查询数据库;查看和修改结果记录。   二、连接常用的接口   提供的接口包括:JAVA API:提供对JDBC的管理链接;JAVA Driver API:支持JDBC管理到驱动器连接。   1、DriverManager :这个类管理数据库驱动程序的列表。内容是否符合从Java应用程序使用的通信子协议正确的数据   库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器被用来建立数据库连接。   2、Driver :此接口处理与数据库服务器通信。很少直接与驱动程序对象。相反,使用DriverManager中的对象,它管理   此类型的对象。它也抽象的与驱动程序对象工作相关的详细信息。   3、Connection :此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过唯一的连接对象。   4、Statement :可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。   5、ResultSet :这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,让你可以通过移动它的数据。   创建JDBC的七大步骤:   第一步:导入工具包:   import java.sql.*;   import javax.sql.*;   第二步:注册jdbc驱动程序   第三步:Class.forName( ….);   第四步:使用DriverManager.getConnection();方法来创建一个Connection对象,它代表一个物理连接的数据库。   第五步:执行查询:使用一个对象类型Statement或PreparedStatement()构建,并提交一个SQL语句到数据库。   第六步:从结果集中提取数据;这一步是必需的情况下,从数据库中获取数据。可以使用适当的ResultSet.getXXX()方法来检索   第七步:清理环境:关闭使用的数据库资源。   我们用代码简单的来实现数据库的连接 代码如下:   复制代码   1 package pkg1;   2 import java.sql.*;   3 import javax.sql.*;   4   5 public class Test{   6   7 //Driver类全名   8 private static final String DRIVER =www.qlincheng.cn “com.microsoft.sqlserver.jdbc.SQLServerDriver”;   9 //jdbc协议:子协议://ip:端口号/   10 private static final String URL = “jdbc:sqlserver:// www.shengrenyp.cn localhost:1433;databasename=”;   11 //数据库名   12 private static final String DATABASE_NAME = “oa”;   13 //数据库用户名   14 private static final String USER_NAME = “sa”;   15 //数据库密码   16 private static final String PASSWORD = “123456”;   17   18 public static void main(www.baichuangyul.com String args[]){   19 try{   20 //加载驱动程序:它通过反射创建一个driver对象。   21
全栈程序员站长
2022/09/10
9280
【愚公系列】2022年01月 Java教学课程 73-反射
文章目录 一、反射 1.反射的概述 2.获取Class类对象的三种方式 3.反射获取构造方法并使用 1.Class类获取构造方法对象的方法 2.Constructor类用于创建对象的方法 3.小结 4.反射获取成员变量并使用 1.Class类获取成员变量对象的方法 2.Field类用于给成员变量赋值的方法 5.反射获取成员方法并使用 1.Class类获取成员方法对象的方法 2.Method类用于执行方法的方法 一、反射 1.反射的概述 反射机制 是在运行状态中,对于任意一个类,都能够知道这个类的
愚公搬代码
2022/01/18
1730
【愚公系列】2022年01月 Java教学课程 73-反射
Java JDBC SqlServer
一、驱动 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=11774 引用Jar包时注意区分Java版本: Sqljdbc4
用户1637609
2018/04/12
3.3K0
ClassNotFoundException和NoClassDefFoundError的区别
最近看到一个面试题,问ClassNotFoundException和NoClassDefFoundError的区别。平时没有专门思考过这个问题,藉此机会分析一下。
明明如月学长
2021/08/27
1.6K1
点击加载更多

相似问题

Class.ForName("com.microsoft.sqlserver.jdbc.SQLServerDriver")投掷ClassNotFoundException

20

ClassNotFoundException for com.microsoft.sqlserver.jdbc.SQLServerDriver

13

Class.forName()抛出ClassNotFoundException

10

Class.forName()和ClassNotFoundException

10

使用Class.forName()时的ClassNotFoundException

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文