eclipse中jdbc驱动的问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 01:14:45
在eclipse中用java连接mssql数据库,已经在工程中导入了三个mssql的驱动包,但是在执行
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();时,还是会提示Source not found for WebappClassLoader.loadClass(String) line: 1206
后来我把那三个包直接放在classpath中,还是一样的错误,还请那位大虾解决一下~~
我都放在WEB-INF\lib下面了,而且比较郁闷的是,在自己的机器上不行,在公司的机器上就可以,一样的代码...

sqlserver驱动名字写错了 应该是:com.microsoft.sqlserver.jdbc.SQLServerDriver

放到WEB-INF\lib 下了没?

首相你的 SQL_Server的驱动必须放在,ClassLoader能够加载的地方。

我猜测,你是进行WEB开发吧,所以你的JDBC驱动必须要放在
WEB-INF/lib文件夹内。

还有一点,你在通过
Class.forName进行注册数据库驱动器的时候,不需要,调用 newinstance()方法。因为Class.forName的时候,会执行 SQL-Server驱动内部的Static执行块,所以SQL-Server驱动,会自动注册。详见SQL-Server的驱动源代码或买本孙鑫Java WEB开发详解。

还有关于ClassLoader的具体讲解,由于篇幅有限,所以,你最好去网上查找ClassLoader的详解介绍,因为Java虚拟机加载Class类,并不是从ClassPath开始的。而是从 bootClassLoader的一个利用C++编写的程序,开始加载指定类的。
一次是 bootClassLoader -> extendClassLoader -> ClassPathLoader。等等
有关Java类加载器的内容,详看ClassLoader类