Weka 连接eclipse+mysql
需要:mysql-connector-java-3.1.14-bin.jar
Weka.jar(安装完weka之后有的)
1.需要将mysql-connector-java-3.1.14-bin.jar添加到environment variable(环境变量)中去
2.解压weka.jar到一个目录去(用rar就可以打开):
这里开始要进行编辑:
打开之后,里面的东西如下:

屏幕剪辑的捕获时间: 12/19/2012 11:07 PM
这里,需要"修理"的是:%weka解压的地方%\weka\experiment\DatabaseUtils.props
打开之后,要进行如下修改:
(找出jdbcDriver)
jdbcDriver=com.mysql.jdbc.Driver

屏幕剪辑的捕获时间: 12/19/2012 11:10 PM
以及(找出jdbcURL)
#jdbcURL=jdbc:idb=experiments.prp jdbcURL=jdbc:mysql://localhost:3306/test

屏幕剪辑的捕获时间: 12/19/2012 11:10 PM
这里,test是你放的那个数据库的名称.
修改完之后,就ctrl+s .
3.然后,把jar压回去
cd到weka这个文件夹(是你解压到的地方,可以dir验证.)
dir应该看到的是:

屏幕剪辑的捕获时间: 12/19/2012 11:14 PM
然后,我们执行命令:jar cvf weka.jar weka\*.* org\*.* java_cup\*.*
(意思是,把这个文件夹里的weka,org.以及java_cup文件夹下的东西一起压到这个jar包.jar包名字是什么呢?就是weka.jar c, 创建新的存档.v.生成详细输出到标准输出上.f.指定存档文件名,就是这里的weka.jar)
之后应该是这样的:

屏幕剪辑的捕获时间: 12/19/2012 11:17 PM
然后,这个jar就做好了.
这时候可以替换掉weka安装目录的那个weka.jar,但是前提是把RunWeka.ini最后再加上mysql-connector-java-3.1.14-bin.jar的路径作为classPath(cp就是class path 的意思)

屏幕剪辑的捕获时间: 12/19/2012 11:22 PM
然后,我们可以在weka或者eclipse里面用上这个jar:
weka里:
再替换掉原来的weka.jar(建议备份),就可以对自己的mysql进行操作:
①打开weka之后,单击explorer:

屏幕剪辑的捕获时间: 12/19/2012 11:24 PM
②单击 open DB

屏幕剪辑的捕获时间: 12/19/2012 11:24 PM
就会有这样的东西出现.
这时候,URL要填写的是刚才修改格式那种的格式:

屏幕剪辑的捕获时间: 12/19/2012 11:25 PM
之后,点击

设置用户和密码

屏幕剪辑的捕获时间: 12/19/2012 11:27 PM
可以之后就点击

如果看到的是

屏幕剪辑的捕获时间: 12/19/2012 11:28 PM
很好 只要是true就说明连接成功了.
然后 举个例子:
在

屏幕剪辑的捕获时间: 12/19/2012 11:28 PM
进行输入:
create table test(a int,b varchar(20))

屏幕剪辑的捕获时间: 12/19/2012 11:38 PM
然后,我们可以查看到(这里用的是navicat):

屏幕剪辑的捕获时间: 12/19/2012 11:39 PM
创建出来.
eclipse里:
新建一个project,右键之,找到build path , config之.

Add external jar里面add上我们需要的weka.jar
然后,我们可以进行编辑:
例如:(新建一个叫test的class)
1 import weka.core.Instances;
2 import weka.experiment.InstanceQuery;
3 public class test {
4
5 private static Instances data;
6
7 /**
8 * @param args
9 * @throws Exception
10 */
11 public static void main(String[] args) throws Exception {
12 // TODO Auto-generated method stub
13 InstanceQuery query = new InstanceQuery();
14 query.setUsername("nee");
15 query.setPassword("131442");
16 query.setQuery("create table another(a int,b varchar(20))");
17 query.setQuery(" insert into another values(1,'aaa')");
18
19
20 setData(query.retrieveInstances());
21 }
22
23 public static Instances getData() {
24 return data;
25 }
26
27 public static void setData(Instances data) {
28 test.data = data;
29 }
30
31 }
运行之后,就会有:

屏幕剪辑的捕获时间: 12/19/2012 11:59 PM
说白了,就是直接sql语句放在字符串里面去``

浙公网安备 33010602011771号