WEKA连接数据库的教程,网上有很多,百度一下就可以找到。
我主要参考的是http://blog.youkuaiyun.com/u012963068/article/details/41721183 这位博主大大的步骤,并根据我的个人体验做出一些小小的修改。
一、软件环境
(1)Weka3.8
(2)MySQL5.7.14(实际上我在之前写WEB相关的内容时下载的WampServer,其中已经包含了该版本MYSQL)
(3)mysql-connector-java-5.1.45(下载地址:https://dev.mysql.com/downloads/connector/j/)
二、安装步骤
1、安装weka和mysql
2、下载连接驱动程序
(1)weka连接mysql数据库需要连接驱动程序mysql-connector-java-5.1.45.jar,解压,取其中的mysql-connector-java-5.1.45-bin.jar
(2)下载完后,在weka的安装目录下(我放在了D:\)D:\Weka-3-8新建lib文件夹,将mysql-connector-java-5.1.45bin.jar包复制到lib文件夹下。
(3)在JDK的安装目录中C:\Program Files\Java\jdk1.8.0_152\jre\lib下也放mysql-connector-java-5.1.45-bin.jar(同时以防万一,我在C:\Program Files\Java\jre1.8.0_152\lib\ext也放置了同样的文件。虽然不知道自己这样做有什么意义。。)
3、设置环境变量
此处环境变量的配置和JDK一样,首先新建系统变量WEKA_HOME,其值为D:\Weka-3-8
修改classpath,在其中加上%WEKA_HOME%\lib\mysql-connector-java-5.1.45-bin.jar;%JAVA_HOME%\jre\lib\mysql-connector-java-5.1.45-bin.jar
4、修改weka.jar包
这里只是稍微修改配置文件,所以只要使用解压工具打开在\Weka-3-8\weka.jar\experiment里找到DatabaseUtils.props将其备份为其他名字然后将DatabaseUtils.props.mysql重命名为DatabaseUtils.props,并修改其内容:
# JDBC driver (comma-separated list)
jdbcDriver=jdbcDriver=com.mysql.jdbc.Driver
# database URL
jdbcURL=jdbc:mysql://localhost:3306/weka (weka为数据库名称,自己起的)
# specific data types,具体的数据类型修改如下,主要是去掉注释
string, getString() = 0; --> nominal
boolean, getBoolean() = 1; --> nominal
double, getDouble() = 2; --> numeric
byte, getByte() = 3; --> numeric
short, getByte()= 4; --> numeric
int, getInteger() = 5; --> numeric
long, getLong() = 6; --> numeric
float, getFloat() = 7; --> numeric
date, getDate() = 8; --> date
text, getString() = 9; --> string
time, getTime() = 10; --> date
BigDecimal,getBigDecimal()=11; -->nominal
然后添加如下内容:
TINYINT=3
SMALLINT=4
SHORT=5
INTEGER=5
INT=5
INT_UNSIGNED=6
BIGINT=6
LONG=6
REAL=7
NUMERIC=2
DECIMAL=2
FLOAT=2
DOUBLE=2
CHAR=0
TEXT=0
VARCHAR=0
LONGVARCHAR=9
BINARY=0
VARBINARY=0
LONGVARBINARY=9
BIT=1
BLOB=8
DATE=8
TIME=8
DATETIME=8
TIMESTAMP=8
其他的暂时无需修改,保存。
5、打开runWeka.ini文件,到文件尾部
在文件尾部添加驱动器的引用(之前下载的驱动文件位置)
cp=%CLASSPATH%;D:/Weka-3-8/lib/mysql-connector-java-5.1.45-bin.jar
三、相关问题及解决
保存后运行weka,点击Open DB ......(输入用户名、密码再点击连接,相关操作见开头链接博主的详细描述。)
然而,我全部做完之后,发现提示:
exception: java.sql.SQLException: Unable to find a suitable driver for jdbc:mysql://localhost:3306/weka
即找不到合适的驱动器。
在保证前面我的系统变量等各种地址都填写无误的情况下,我推测可能的原因有两个:
1、mysql-connector-java的版本无法驱动MYSQL的版本。(我一开始用的非常老旧的版本,后来下载的较新版本的。)
这种情况需要下载一个符合要求求,能带得动现有MYSQL版本的驱动即可。
2、在上面这种情况解决之后依然无法连接时,虽然不知道原因,但是我尝试把我一开始下载的mysql-connector-java-5.1.45.jar(注意不是mysql-connector-java-5.1.45-bin.jar)放入C:\Program Files\Java\jre1.8.0_152\lib\ext即可解决。