如何在weka中连接数据库

  1. 云栖社区>
  2. 博客>
  3. 正文

如何在weka中连接数据库

hiekay 2018-12-03 17:41:10 浏览301 评论0

摘要: 如何在weka中连接数据库

相关准备:

jdk-1_6_0_22
weka-3-6-3.exe
mysql-5.0
MySQL Driver for JDBC--->mysql-connector-java-5.1.6-bin.jar

1、进入weka的安装目录
  • 1)新建文件夹lib和文件夹weka,然后将mysql-connector-java-5.1.6-bin.jar复制到lib文件夹中
  • 2)“我的电脑”属性,设置环境变量

    新建变量WEKA_HOME=weka的安装目录,如(D:Prgramsweka-3.6)

   在CLASSPATH变量中添加“;%WEKA_HOME%libmysql-connector-java-5.1.6-bin.jar”

  • 3)将weka.jar解压到weka文件夹(新建)中,然后进入wekaexperiment,找到DatabaseUtils.props(缺省使用)将其重新命名备份;假设我们要连接的mysql数据库,则将DatabaseUtils.props.mysql重新命名为DatabaseUtils.props,然后做如下修改:
# JDBC driver (comma-separated list)
#jdbcDriver=org.gjt.mm.mysql.Driver 修改为:jdbcDriver=com.mysql.jdbc.Driver  
# database URL,保持不变
jdbcURL=jdbc:mysql://server_name:3306/database_name 

# 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  

#mysql-conversion  --类型转换,做如下补充 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

  其他的暂时无需修改,保存

  • 4)对weka重新打包,替换原来的weka.jar(最好改名备份),进入命令行

     cd weka安装目录weka

     jar cvf weka.jar weka*.*

这样就完成weka.jar的重新生成,进入安装目录weka,便可看到新生成的weka.jar,将其复制替换安装目录下原来的weka.jar

网上的很多文章到这一步就去运行weka,我也试了一下发现没有办法找到jdbc.driver,没办法连接上数据库。结果我再查资料,再做如下的操作,就可以正常连接了。

  • 5)将刚刚修改的DatabaseUtils.props文件,复制到weka的安装目录下
  • 6)打开runWeka.ini文件,到文件尾部
\# The classpath placeholder. Add any environment variables or jars to it that
\# you need for your Weka environment.
\# Example with an enviroment variable (e.g., THIRD_PARTY_LIBS):
\#   cp=%CLASSPATH%;%THIRD_PARTY_LIBS%
\# Example with an extra jar (located at D:\libraries\libsvm.jar):
\#   cp=%CLASSPATH%;D:\\\\libraries\\\\libsvm.jar
\# Or in order to avoid quadrupled backslashes, you can also use slashes "/":
\#  cp=%CLASSPATH%;D:/libraries/libsvm.jar

修改为(添加driver的文件路径):cp=%CLASSPATH%;D:/Programs/Weka-3.6/lib/mysql-connector-java-5.1.6-bin.jar #cp=%CLASSPATH%

2、运行weka,进入explorer -->open DB

在URL框中输入:jdbc:mysql://localhost:3306/mysql    (localhost是服务器名称,最后的mysql是要访问的数据库名,自行修改,确保要访问的数据库存在)

点击user: 输入用户名和密码后,点击connect,

如果在下面的info框中,显示connecting to: jdbc:mysql://localhost:3306/mysql = true,则连接成功;否则失败。
可以在query框中输入sql语句,点击excute执行。

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论