java通过JDBC连接数据库,老是报错:ClassNotFoundException.该导入的jar包我也已经导入了。

代码如下:

public final class DBclass {

public static String user = "root";
public static String password = "admin";
public static String url = "jdbc:mysql://localhost:3306/money_manage";
public static String driver = "com.mysql.jdbc.Driver";

//构造函数
private void DBconnection(){}

//获取数据库连接;
public static Connection getConnection(){
Connection conn = null;
try{
//加载MySql的驱动类
Class.forName("driver") ;
conn = (Connection) DriverManager.getConnection(url, user, password);
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}catch(Exception e){
System.out.println("database connect failed!");
e.printStackTrace();
}

return conn;
}

//关闭数据库资源
public static void closeDB(ResultSet rs, Statement st,Connection conn){
try{
if(rs != null)
rs.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(st != null)
st.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(conn != null)
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

}
public static void main(String args[]){
DBclass.getConnection();

}
}
报错:
找不到驱动程序类 ,加载驱动失败!java.lang.ClassNotFoundException: driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at DBclass.getConnection(DBclass.java:25)
at DBclass.main(DBclass.java:64)

导入的jar包是:mysql-connector-java-5.1.6-bin.jar
是导入到该工程的lib目录下的。
因为在工程中出现这个报错,所以将它单独的执行了一下,也是同样的错误。在网上百度了很多,都没有把问题解决,求高手指点一下。
对应的jar包

//加载MySql的驱动类
Class.forName("driver") ;————把driver变量的双引号去掉!driver是作为一个参数传入的!而不是“driver”
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-27
不劳而获的答案是正确,这个变量的意思是Driver这个类的路径,你对比下jar包里面的路径就知道了,class,forName意思是java里面的映射机制,有兴趣可以了解下
第2个回答  2012-02-27
你可以重装一下系统
第3个回答  2012-02-27
你看你的lib包是不是没有加载到classpath里?
第4个回答  2012-02-27
把你导入的包粘出来看下呢追问

我上传图片了。。但是我这边好像看不到。jar包是这个:mysql-connector-java-5.1.6-bin.jar
在WEB-INF下面的lib.

追答

我不是要这个包,而是你代码顶部导入的包。类,到入的类那种包

相似回答