在MYSQL中建了一个数据库JAVA,里面有一个数据库表java_db,而MYSQL的root用户没有密码
作了如下的 设置:
把mysql-connector-java-3.1.8-bin.jar复制到了lib目录下了 并在CLASSPATH设置它们的路径,还用同样的方法
试过mm.mysql-2.0.14-you-must-unjar-me.jar.(不知道是不是该用这两个jar包)
但都不行,运行时有这样的错误提示
Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at Mysql.main(Mysql.java:18)我编如下程序
import java.sql.*;
public class Mysql
{
 public static void main(String args[]) throws Exception
 {
  //String name = args[0];
  String sql = "SELECT * FROM java_db";
  String strURL = "jdbc:mysql://localhost/java?user=root";
  System.out.println(sql);
  try
  {
  Class.forName("org.gjt.mm.mysql.Driver");
  }
  catch(ClassNotFoundException e)
  {
   System.out.println(e.getMessage());
  }
  try
  {
  Connection conn=DriverManager.getConnection(strURL);
  Statement stmt=conn.createStatement();
  if(stmt.execute(sql))
  {
  ResultSet rs = stmt.getResultSet();
  ResultSetMetaData md = rs.getMetaData();
  //System.out.println(md.getColumnCount()+"  "+md.getColumnDisplaySize(1)+" "+);
  for(int i=1;i<=md.getColumnCount();i++)
   System.out.print(md.getColumnName(i)+"\t");
  System.out.println();
  while(rs.next())
  for(int i=1;i<=md.getColumnCount();i++)
   {
    System.out.print(rs.getObject(i)+"\t");
    if((i%md.getColumnCount())==0)
     System.out.println();
   }
  }
  else
  {
   System.out.println(stmt.getUpdateCount() + "rows affected");
  }
  stmt.close();
  conn.close();
  }
  catch(SQLException e)
  {
   e.printStackTrace();
   System.out.println("error");
  }
 }
}
谢谢!

解决方案 »

  1.   

    试过mm.mysql-2.0.14-you-must-unjar-me.jar.(不知道是不是该用这两个jar包)you-must-unjar-me..
    你就该把这个包解压缩,里面学有个.jar文件,用那个试试...  :)
      

  2.   

    把包打开看看特的结构再说,如果发现有java.lang.NoClassDefFoundError错误,第一步就是去你的包里面看看有没有这个类!如果有再考虑CLASSPATH的问题.
      

  3.   

    我把其中的
    mm.mysql-2.0.14-bin.jar
    解压出来的
    并和以前一样对CLASSPATH进行了设置
    但还是有相同的错误
      

  4.   

    在console使用“echo $CLASSPATH”查看路径中有没有成功包含驱动程序。
    btw:root帐户没有密码是很不好的“习惯”
      

  5.   

    Class.forName("org.gjt.mm.mysql.Driver");
    --------------------------------------------
    对于mysql-connector-java-3.1.8-bin.jar,引号里面语句应该改动.
      

  6.   

    把 mysql-connector-java-3.1.8-bin.jar
    放到jre的lib/ext目录下就可以了。
      

  7.   

    我输入
    echo $CLASSPATH
    显示的如下内容:
    .:/usr/java/j2sdk1.4.2_07/lib/dt.jar:/usr/java/j2sdk1.4.2_07/lib/tools.jar:/usr/java/j2sdk1.4.2_07/lib/mm.mysql-2.0.14-bin.jar如果使用mysql-connector-java-3.1.8-bin.jar
    应该怎么改Class.forName
      

  8.   

    如果你使用mysql-connector-java-3.1.8-bin.jar,那么你要确认他在上述路径当中。
    .:/usr/java/j2sdk1.4.2_07/lib/dt.jar:/usr/java/j2sdk1.4.2_07/lib/tools.jar:/usr/java/j2sdk1.4.2_07/lib/mysql-connector-java-3.1.8-bin.jar
    Class.forName("com.mysql.jdbc.Drive");
    这里面需要注意两个细节:
    1,确认你的权限设置,普通用户有无权限读取。
    2,驱动程序放置位置可随意,只需相应修改即可。
      

  9.   

    mysql-connector-java-3.1.8-bin.jar与
    mm.mysql-2.0.14-bin.jar
    有什么差别吗?
      

  10.   

    我修改了
    Class.forName(  "com.mysql.jdbc.Drive  ");
    也重新设置了的CLASSPATH
    但程序还有错误,错误提示变了 
    java.sql.SQLException: No suitable driver
            at java.sql.DriverManager.getConnection(DriverManager.java:532)
            at java.sql.DriverManager.getConnection(DriverManager.java:193)
            at Mysql.main(Mysql.java:26)