如何在weka中連線資料庫

hiekay發表於2018-12-03
相關準備:

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:librarieslibsvm.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執行。


相關文章