Weka与Eclipse中的MySQL连接

时间:2014-12-16 11:30:05

标签: java mysql eclipse weka

我试图使用Weka库编写自己的软件,但它会引发JDBC驱动程序异常。

我的代码(主要是从他们的教程中复制粘贴):

package test;

import weka.core.Instances;
import weka.experiment.InstanceQuery;

public class Test {

    public static void main(String[] args) throws Exception{

        InstanceQuery query = new InstanceQuery();

        query.setUsername("root");
        query.setPassword("");
        query.setQuery("select id_activite from ACTIVITES limit 1");

        Instances data = query.retrieveInstances();
        System.out.println(data.toString());

    }

}

我得到了这个例外:

Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Error, not in CLASSPATH?
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:idb=experiments.prp
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at weka.experiment.DatabaseUtils.connectToDatabase(DatabaseUtils.java:523)
    at weka.experiment.InstanceQuery.retrieveInstances(InstanceQuery.java:286)
    at weka.experiment.InstanceQuery.retrieveInstances(InstanceQuery.java:271)
    at seniorhome.Test.main(Test.java:17)

我已经通过构建路径 - 添加外部JAR分别添加了weka.jar和weka-src.jar文件,并且还通过以下方式添加了mysql-connector-java-5.1.34-bin.jar文件同样的方法。

如果我编写另一个测试类来连接数据库它可以工作(所以它绝对不是服务器的问题):

public class test {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
//          new com.mysql.jdbc.Driver();
            Class.forName("com.mysql.jdbc.Driver").newInstance();
// conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase?user=testuser&password=testpassword");
            String connectionUrl = "jdbc:mysql://localhost:3306/b3l";
            String connectionUser = "root";
            String connectionPassword = "";
            conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT id_activite FROM activites");
            while (rs.next()) {
                String id = rs.getString("id_activite");
                System.out.println("ID: " + id);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); }
            try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); }
            try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在切换文件,将它们添加到构建路径等之间,我不小心添加了一个文件而没有修改DatabaseUtils.prop文件中的数据库参数。