在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");
}
}
}
谢谢!
作了如下的 设置:
把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");
}
}
}
谢谢!
你就该把这个包解压缩,里面学有个.jar文件,用那个试试... :)
mm.mysql-2.0.14-bin.jar
解压出来的
并和以前一样对CLASSPATH进行了设置
但还是有相同的错误
btw:root帐户没有密码是很不好的“习惯”
--------------------------------------------
对于mysql-connector-java-3.1.8-bin.jar,引号里面语句应该改动.
放到jre的lib/ext目录下就可以了。
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
.:/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,驱动程序放置位置可随意,只需相应修改即可。
mm.mysql-2.0.14-bin.jar
有什么差别吗?
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)