1 配置
  安装mysql:版本mysql-5.0.51b-win32;
  安装jdbc connector,并将mysql-connector-java-5.1.2-beta-bin.jar路径添加到了path中,并拷贝到了jre\bin下面;
  安装jre和jdk6,路径设置正确,添加了jre\bin进入路径;2 结果:
  mysql下,可以建立、操作数据库,服务启动,安装应该已经成功;
  且在mysql下已经建立数据库myDatabase;
  jre和jdk安装应该成功,因为,可以运行别的程序,可以对我的普通java程序运行;3 问题
  我的程序名字叫做JDBCDemo.java,javac JDBCDemo.java命令运行通过,但是在java JDBCDemo时出现错误如下:
Exception in thread "main" java.lang.NoClassDefFoundError: JDBCDemo
   at java.lang.ClassLoader.DefineClass1<Native Method>
   at java.lang.ClassLoader.DefineClass<Native Source>
   at java.security.SecureClassLoader.DefineClass<Unknown Source>
   at java.net.URLClassLoader.DefineClass<Native Source>
等等4 程序如下,一个基本的小程序,谢谢啦
import java.sql.*;public class JDBCDemo {

/*
*@param args
*/
public static void main(String[] args){



String user="root";
String password="12345678";
String URL="jdbc:mysql://localhost:3306/myDatabase";
String driver="com.mysql.jdbc.Driver";
String tableName="studinfo";
String sqlstr;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;



try{

Class.forName(driver).newInstance();
con=DriverManager.getConnection(URL,user,password);
stmt=con.createStatement();

sqlstr="insert into"+tableName+"values('20000908','honey',21)";
stmt.executeUpdate(sqlstr);

sqlstr="select * from "+tableName;
rs=stmt.executeQuery(sqlstr);

System.out.println("已经运行到这儿了!");

ResultSetMetaData rsmd=rs.getMetaData();
int j=0;
j=rsmd.getColumnCount();
for(int k=0;k<j;k++){

System.out.print(rsmd.getCatalogName(k+1));
System.out.print("\t");
}
System.out.println();
while(rs.next()){

for(int i=0;i<j;i++){
System.out.println(rs.getString(i+1));
//System.out
}
}
}
catch(java.lang.InstantiationException e){
System.out.println("实例化没有成功!");
}
catch(java.lang.IllegalAccessException e){
System.out.println("illegal access");
}
catch(ClassNotFoundException e)
{
System.out.println("数据库驱动不存在!");
System.out.println(e.toString());
}
catch(SQLException e)
{
System.out.println("数据库存在异常!");
System.out.println(e.toString());
}
finally
{
try{

if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(con!=null) con.close();
}
catch(SQLException e)
{
System.out.println("还是有错啊");
System.out.println(e.toString());
}
}

}

}
5 疑问
  到底是什么问题呢?对于jdbc-connector的设置,参照了网上很多资料,没有看出来有什么问题啊?
  还请大虾们给看看,谢谢了

解决方案 »

  1.   

    mysql-connector-java-5.1.2-beta-bin.jar 设置classpath了么?
      

  2.   

    有没有更多的 错误信息?
    你在命令窗口中运行 此程序,我怀疑你的MYSQL数据库驱动没有加载成功。
      

  3.   

    谢谢,该jar添加到了path下面,在线等待
      

  4.   

    该jar不是添加到path下面啊,path里面是可执行的命令的路径是classpath阿  哪里有程序要用到的jar,需要你设置啊。设置classpath 试一下哈
      

  5.   

    你如果用IDE eclipse的话 ,你也是需要把mysql.jar添加到 eclipse里面的 classpath文件中啊
      

  6.   

    首先把JDBCDemo 这个类的上级目录加到classpath里,然后把mysql的驱动也加进去,再运行试试!
      

  7.   

    你是用命令行 编译运行的吧看错误不是驱动问题JDBCDemo 是默认包吗
      

  8.   

    请问classpath的设置是在电脑右键-属性-高级-环境变量中的用户和系统变量中分别新建一个classpath然后把jdbc connector的jar目录添加进去吗?谢谢
      

  9.   

    jdk的是在path里面设置的,最多再加个java_home吧
      

  10.   

    我估计就是连接mysql数据库没有成功
    JDBCDemo.java就是一个单独的程序,没有放到哪个包下面,其实放package应该也不会导致问题出现
      

  11.   

    现在的问题根本就没有到数据库那个步骤而是你自己写的类都找不到你的 javac java 命令能运行 说明你的path 应该设置好了你在命令行 运行set classpath 看输出什么
      

  12.   

    还有你运行命令行的 所在目录 在javac JDBCDemo.java 编译后 看看在所在目录下有没有生成JDBCDemo.class文件
      

  13.   

    有没有人替我运行一下啊?
    估计应该是这个问题,java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
    我使用的命令行下运行JDBCDemo.class程序
    应该如何连接上这个Driver呢?
    我看到mysql-connector-java-5.1.2-beta-bin.jar中有这个driver了,并且我新建classpath变量并添加了这个jar的路径进入,不行啊!
    谢谢大家帮忙啊
    在线等待
      

  14.   

    你到底报的是那个错误Exception in thread "main" java.lang.NoClassDefFoundError: JDBCDemo java.lang.ClassNotFoundException:com.mysql.jdbc.Driver 
      

  15.   

    在命令行敲入set classpath显示:
    classpath="c:\JDBC\mysql-connector-java-5.1.2-beta\mysql-connector-java-5.1.2-beta-bin.jar"
    不行啊
      

  16.   

    我问你到底报哪个错误 下面两个错误 都是你列出来的 到底是哪个这两个错误不可能同时出现的Exception in thread "main" java.lang.NoClassDefFoundError: JDBCDemo java.lang.ClassNotFoundException:com.mysql.jdbc.Driver 
      

  17.   

    数据库驱动不存在
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
      

  18.   

    1 javac JDBCDemo.java,得到JDBCDemo.class
    2 java JDBCDemo出现下面问题:
    exception in thread "main" java.lang.NoClassDefFound:JDBCDemo
    请问为什么没有找到JDBCDemo类啊
      

  19.   

    晕死 难道类加载器没有搜索当前路径按下面做 分三步运行
    先   set classpath =.;c:\JDBC\mysql-connector-java-5.1.2-beta\mysql-connector-java-5.1.2-beta-bin.jar再   javac JDBCDemo.java最后 java JDBCDemo
      

  20.   

    楼主 我已经帮你运行了该程序。你的问题是这样的,你按照我下面的步骤重新设置的环境变量再运行。JAVA_HOME=D:\j2sdk1.4.2_04【你的JDK安装目录】
    Path=%JAVA_HOME%\bin【这句话放到你的path最前面】你的问题最重要的是这里
    CLASSPATH的设置CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\bea\lib\mysql-connector-java-5.1.2-beta-bin.jar【后面是你的MYSQL驱动路径】我已经在我自己的机上运行了 并且是在 命令窗口中运行的 java JDBCDemo强烈建议楼主把 JAVA的开发环境和JAVA的运行环境弄明白!!!!
      

  21.   

    这个问题就是 我最开始告诉你的 classpath的 问题!
      

  22.   

    谢谢interpb和wxinb的大力帮助,其实没别的,我就是在设置路径时前面没有写“.;”,没留意,惭愧啊!等一会过来把帖子结了。