我知道关于这个主题有很多问题,但我觉得我面临的情况确实不同。
问题:
我创建了一个RCP项目,我需要连接到我的Mysql数据库。在编写程序之前,我编写了一个测试程序来测试所需的配置,并成功连接到我的Mysql数据库。测试程序可以在附录1中找到。
然后我开始在同一个项目中编写我的程序,但当我在其中调用函数时,异常java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
发生了。这真让我不安。该计划见附录2。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Sql
{
private static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
private static final String URL ="jdbc:mysql://localhost/manager?useUnicode=true&characterEncoding=utf8";
private static final String USERNAME = "root";
private static final String PASSWORD = "yhl0821";
public static void main(String[] args)
{
Connection con = null;
Statement sm = null;
ResultSet rs=null;
try
{
Class.forName(MYSQL_DRIVER);
con =DriverManager.getConnection(URL, USERNAME, PASSWORD);
System.out.println("Successed to connect the mysql!");
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class EventEntity
{
private static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
private static final String URL = "jdbc:mysql://localhost/manager?useUnicode=true&characterEncoding=utf8";
private static final String USERNAME = "root";
private static final String PASSWORD = "yhl0821";
public static List<Object> getEventEntity()
{
List<Object> list = null;//
Connection con = null;
Statement sm = null;
ResultSet rs = null;
try
{
Class.forName(MYSQL_DRIVER); //this is the setence creating exception
con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
System.out.println("Successed to connect the mysql!");
sm = con.createStatement();
rs = sm.executeQuery("select * from systemevent ");//
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
return list;
}
}
答案 0 :(得分:0)
当您运行附录2中的程序时,类com.mysql.jdbc.Driver
不在您的CLASSPATH上。
答案 1 :(得分:0)
在此之前,我不了解从Eclipse运行的RCP项目中Classpath的含义。如果你想用Eclipse编写和运行RCP项目,你不仅应该在构建路径中放置所需的* .jars和其他文件(在编译程序时需要它们),还要在“运行时”中配置Classpath。您可以这样配置:1,dobble单击plugin.xml.2,选择Runtime并找到Classpath.3,单击“Add”将文件放入RCP项目运行时所需的内容。