zoukankan      html  css  js  c++  java
  • 关于java.lang.ClassNotFoundException: org.git.mm.mysql.Driver的解决办法

    用jdbc链接数据库MySql时出现如下异常:

    java.lang.ClassNotFoundException: org.git.mm.mysql.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.panguso.test.ps.PSTestStandardizedProducts.DataBaseOperation.getDBConnection(DataBaseOperation.java:84)
    at com.panguso.test.ps.PSTestStandardizedProducts.DataBaseOperation.getValuefromDB(DataBaseOperation.java:113)
    at com.panguso.test.ps.PSTestStandardizedProducts.DataBaseOperation.main(DataBaseOperation.java:157)

    原因是在数据库驱动程序org.gjt.mm.mysql.Driver类中没有源代码,打开后可发现内容为:

    //Compiled from Driver.java (version 1.5 : 49.0, super bit)
    public class org.gjt.mm.mysql.Driver extends com.mysql.jdbc.Driver {

    // Method descriptor #5 ()V
    // Stack: 1, Locals: 1
    public Driver() throws java.sql.SQLException;
    0 aload_0 [this]
    1 invokespecial com.mysql.jdbc.Driver() [1]
    4 return
    Line numbers:
    [pc: 0, line: 46]
    [pc: 4, line: 47]
    Local variable table:
    [pc: 0, pc: 5] local: this index: 0 type: org.gjt.mm.mysql.Driver
    }

    "org.gjt.mm.mysql.Driver 是当时最好的MySQL JDBC,但不是MySQL公司的,然后MySQL将MM的JDBC驱动收为官方的JDBC驱动,所以将驱动的package也该了,但还保留了org.gjt.mm.mysql.Driver这个路径的引用,也就是你使用新版的JDBC驱动时还可以通过这个来引用,你打开下载的新版JDBC驱动的jar文件可以看到,只有一个文件的目录是org.gjt.mm.mysql,就是为了兼容而设计的.  org.git.mm.mysql.Driver 只是简单的继承了 com.mysql.jdbc.driver,并没有实现其他逻辑

    解决办法如下:

    1  用mysql自己的的驱动程序 将org.gjt.mm.mysql.Driver换成com.mysql.jdbc.driver即可。

    2 将代码中try catch 去掉,就不会再报异常,程序可以正常运行。至于安全性我也不清楚,原则上没有,还是建议用1中方法。

    try {
    Class.forName(DBDriver);
    } catch (ClassNotFoundException e) {
    //e.printStackTrace();
    }

  • 相关阅读:
    beta版本冲刺七
    beta版本冲刺六
    beta版本冲刺五
    beta版本冲刺四
    beta版本冲刺三
    Beta版本冲刺(二)
    项目评测
    beta版本冲刺(一)
    福大软工 · 最终作业
    福大软工 · 第十二次作业
  • 原文地址:https://www.cnblogs.com/TianMG/p/3062726.html
Copyright © 2011-2022 走看看