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语句放在字符串里面去``

   

   

posted @ 2012-12-20 00:01  方包  阅读(1809)  评论(0编辑  收藏  举报