用java连接MySQL出现错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java连接MySQL出现错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver相关的知识,希望对你有一定的参考价值。
我在网上找到的代码
import java.sql.*;
public class JDBCTest
public static void main(String[] args)
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名scutcs
String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
// MySQL配置时的用户名
String user = "root";
// Java连接MySQL配置时的密码
String password = "root";
try
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select * from tbmakerdata";
String InsertData = "insert into tbmakerdata(Name,Type,Lat,Lng) values ('0102123','myIconW','39.1087','117.1771');";
//结果集
//statement.executeUpdate(InsertData);
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println("图标类型" + "\t" + "名称" +"\t" +"经纬度");
System.out.println("-----------------");
String name = null;
while(rs.next())
//选择sname这列数据
name = rs.getString("Name");
// 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
// 然后使用GB2312字符集解码指定的字节数组
//name = new String(name.getBytes("ISO-8859-1"),"GB2312");
// 输出结果
System.out.println(rs.getString("Type") + "\t" + name + "\t" + rs.getString("Lat") + "\t" + rs.getString("Lng"));
rs.close();
conn.close();
catch(ClassNotFoundException e)
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
catch(SQLException e)
e.printStackTrace();
catch(Exception e)
e.printStackTrace();
用这个代码新建一个项目就可以正常运行并连接数据库。
当我将它写入另一个项目的一个方法时就报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我这个类里也导入了java.sql.*,而且com.mysql.jdbc.Driver的路径也和上一个项目的路径相同。
求大神帮我分析分析是哪里出的错误啊?急死了
你说的非常有道理!!下面是我出问题的那个类,我在其他类中调用的这个类的toDataBase()方法
package com.ibm.googlemap;
import java.sql.*;
public class DataBaseMarker
public static void toDataBase()
String driver = "com.mysql.jdbc.Driver";
。。。。。
后面的内容与上面的那个撑血完全一样了,字符有限粘不全了
这!!如果是这样子的话,真是bug了。我运行了你的函数,也把它写成了方法体在另一个函数中调用,可是悲剧我是没有出错的,不然应该能找出原因的。惭愧,不知道你那儿是怎么回事了……
追问还是谢啦!
参考技术A 楼主,一楼说的可能有点不对,如果你只是要运行这段代码的话,不需要Tomcat(具体是什么你可以去网上查查)。运行这段代码(根据代码的内容来看)的前提是你的电脑上有mysql,并且你在mysql中拥有名为scutcs的database(数据库),在这个databse中拥有名为tbmakerdata的表(table),并且在表中有Name,Type,Lat,Lng这些字段并且有一些值。之后在你的classpath中有java连接mysql的驱动包(mysql-connector-java-5.1.7-bin.jar 你可以去mysql的官网上下载,不一定是5.1.7),在上面的都齐全的之后,你可以运行这段代码,可以再控制台看到结果。如果你用的是eclipse这样的ide工具的话,操作上会简单一点。追问谢谢啊,是这样的,我用的eclipse,在另外一个项目中用这段代码是可以连数据库的。只是我现在把这个main方法写为另外一个类中的方法。再在其他类中调用该方法就连不上,为了保险我每个类都import java.sql.*。
我的classpath中也有
这是怎么回事呢?明明在另一个项目中可以正常连接的,但是一到另一个程序就不行了
如果报错还是com.mysql.jdbc.Driver找不到的话,就是驱动包(mysql-connector-java-5.1.6-bin.jar)不在你想运行的程序的项目的classpath下,真想不到别的原因了。
参考技术B 是tomcat找不到MYSQL JAR包的问题。后来又把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面就ok了,嘿……在java项目中,只需要引入mysql-connector-java-5.1.7-bin.jar就可以运行java项目。
在web项目中,当Class.forName("om.mysql.jdbc.Driver");时myeclipse是不会去查找字符串,不会去查找驱动的。所以只需要把mysql-connector-java-5.1.7-bin.jar拷贝到tomcat下lib目录就可以了。追问
我没有用过tomcat啊?这个tomcat是个什么东西?还有怎么“把mysql-connector-java-5.1.7-bin.jar拷贝到tomcat下lib目录”?
追答tomcat 是用来启动和管理web项目
那你String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
配对没有?
是去mysql的安装目录里找jar包吗?我找不到啊,能不能说的具体点?谢谢啊
以上是关于用java连接MySQL出现错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的主要内容,如果未能解决你的问题,请参考以下文章
用Navicat连接MySQL数据库出现1251错误:密码方式错误
Mysql学习之十二:JDBC连接数据库之DriverManager方法
java 程序移植到linux系统中,出现mysql无法连接错误。提示Communications link failure