微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Weka链接SQLServer2005数据库

最近用Weka链接sqlServer2005,遇到了一些问题,但通过查资料最终成功,现总结如下:
(1)下载Microsoft sql Server 2005 for JDBC Driver驱动程序,并安装:

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba
(2)修改CLAsspATH路径,将刚才安装的sqljdbc.jar添加到路径中。
(3)必备的Weka不用说了。这里我经安装了Weka3.5。
(4)在Weka3.5的安装完的文件夹下,有个weka.jar文件,当然可以用winrar打开,找到weka.jar/weka/experiment 目录,里面有DatabaseUtil.props文件。因为我们连接的是sqlserver2005,所以可以按照DatabaseUtil.props.oracle 的格式修改DatabaseUtil.props
(5)修改 DatabaseUtil.props,以下是修改好的内容(#表示注释)
# Database settings for Microsoft sql Server 2005
#
# url:    
http://www.microsoft.com/
# jdbc:    http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba
# author: Fracpete (fracpete at waikato dot ac dot nz) huzhyi21@163.com
# version: $Revision: 1.2 $

# JDBC driver (comma-separated list) 驱动程序
jdbcDriver=com.microsoft.sqlserver.jdbc.sqlServerDriver

# database URL 连接字符串( databaseName为数据库名;user为用户名;password为密码,这几项因人而异。)
jdbcURL=jdbc:sqlserver://localhost:1433;databaseName=mydb;user=sa;password=1234

# specific data types 数据类型的转换。由于weka仅支持名词型(nominal)、数值型(numeric)、字符串、日期(date)。所以我们要将现在数据库中的数据类型对应到这四种类型上来。


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
gloat,getFloat() = 7;            -->numeric
date,getDate() = 8;                -->date
varchar=0
float=2
tinyint=3
int=5

# other options 其它选项,展示用不到。
CREATE_DOUBLE=DOUBLE PRECISION
CREATE_STRING=VARCHAR(8000)
CREATE_INT=INT
checkUpperCaseNames=false
checkLowerCaseNames=false
checkForTable=true

(6)下面可以操作了!运行weka的Explore界面后,通过Open DB..打开sql Viewer工作界面通过user我们设置好用户名和密码后即可connect;连接成功后,可以通过书写sql语句查询出想要的结果后,OK即可在Explore界面的preprocoss面板中看到了输入的数据。在连接读取数据库的数据时,sql Viewer面板也提供了Info,相当与我们单纯用jdbc连接数据库时的调试信息。
当然,在这里我出现了问题,就是提示还是找不到classpath里的sqljdbc,就sqljdbc.jar拷贝到$JAVA_HOME/jre/lib/ext/下面即可. 这是jdk的个人问题

注意:1.我们这里是直接在weka.jar中修改的,修改完可以直接运行观测效果,但是如果要是在weka的源代码修改的话,这需要重新生成weka.jar才能生效。
    2.我们这里链接的是sqlserver2005,要是连接其他数据库时,过程也是类似的。

    3.如果还有什么问题,可以发email给我:huzhyi21@163.com

                                                                           written by huzhyi ,2009-04

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐