weka 连接SQL Server 2008R2 数据库

下载Weka 3.8

安装SQL Server 2008R2,和SQL 管理平台。

    1.sqljdbc_3.0。下载数据库驱动,下载的必须是SQL Server 2008R2 的jdbc驱动。

  要注意的是SQL SERVER2008和SQL SERVER2008 R2不一样。SQLSERVER 2008的可以用2.0,然后SQLSERVER 2008 R2只能用3.0.否则报错呀。

Microsoft SQL Server JDBC Driver 3.0下载下来,解压下来有2个jar,一个是sqljdbc.jar,一个是sqljdbc4.jar。其中sqljdbc是为JDK1.5用的,而JDK1.6必须用sqljdbc4。否则出错!这里我们用sqljdbc4.jar。

  2.配置classpath。设置classpath环境变量指向该驱动。

如:classpath=D:\Study\SQLjdbc\sqljdbc_3.0\chs\sqljdbc4.jar;(这个路径是sqljdbc4.jar所在的路径)

     3.关闭Weka,启动数据库,建立名称为weka的数据库,为数据库建立一个名称为weka的用户,密码自定,并为该用户赋予足够的权限。

    利用SQL Server数据库管理平台 建立数据库与用户具体操作见:

https://jingyan.baidu.com/article/86fae346ba946f3c49121a0e.html

     4.要正常访问数据库,根据计算机的实际情况正确修改配置文件是关键。Weka的配置文件名称为DatabaseUtils.props,位于weka.experiment包中。可以从weka.jar或weka-src.jar归档文件获取该配置文件。具体做法是,使用解压缩工具将归档文件解开,在weka/experiment子目录可以找到DatabaseUtils.props配置文件。我是直接在该配置文件的基础上进行修改。 
为了方便用户,Weka对常用数据库都提供对应配置文件,在对应配置文件上进行修改要方便得多。例如: 
(1) DatabaseUtils.props.hsql:适用HSQLDB 数据库; 
(2) DatabaseUtils.props.msaccess:适用MS Access数据库; 
(3) DatabaseUtils.props.mssqlserver:适用MS SQL Server 2000数据库; 
(4) DatabaseUtils.props.mssqlserver2005:适用MS SQL Server 2005数据库; 
(5) DatabaseUtils.props.mysql:适用MySQL数据库; 
(6) DatabaseUtils.props.odbc:适用ODBC/JDBC桥连接的数据库; 
(7) DatabaseUtils.props.oracle:适用Oracle 10g数据库; 
(8) DatabaseUtils.props.postgresql:适用PostgreSQL 7.4数据库; 
(9) DatabaseUtils.props.sqlite3:适用sqlite 3.x数据库。

 我的操作:利用360压缩打开(!没有解压)找到DatabaseUtils.props,如下图所示:


拖拽到桌面上编辑:

程序清单1.2  原DatabaseUtils.props文件内容

# The comma-separated list of jdbc drivers to use
#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver
#jdbcDriver=jdbc.idbDriver
#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mckoi.JDBCDriver,org.hsqldb.jdbcDriver
#jdbcDriver=org.gjt.mm.mysql.Driver

# The url to the experiment database
#jdbcURL=jdbc:rmi://expserver/jdbc:idb=experiments.prp
jdbcURL=jdbc:idb=experiments.prp
#jdbcURL=jdbc:mysql://mysqlserver/username

把上面的

#jdbcDriver=org.gjt.mm.mysql.Driver

#jdbcURL=jdbc:mysql://mysqlserver/username

改成:
    jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver(上面的有个#,一定要记得去掉。我忘记去掉,结果折腾了很久)

jdbcURL=jdbc:sqlserver://localhost:1433;databaseName=weka(注意每种数据库连接URL写法不一样!)

之后,把更改号的文件,拖拽到上图中,替换原来的DatabaseUtils.props

  几种常见的数据库连接URL写法见参考:http://blog.csdn.net/u014726937/article/details/52786502

注意: Weka只会去寻找名称为DatabaseUtils.props的配置文件,如果用户想以其余配置文件中的一个(如DatabaseUtils.props.mysql)作为模板,在此基础上进行修改,一定记住要先改名。

  如果读者使用不同的数据库,或者使用不同的端口号,请根据具体的数据库配置,设置这两个参数。 
完成DatabaseUtils.props文件的设置后,必须放在如下三个固定位置之一,Weka才能找到。 
(1) 当前目录。直接放在Weka 3.7的安装目录中。

(2) 用户目录中。如果使用Windows的用户不知道自己的用户目录,可以在命令行输入如下命令:

echo %USERPROFILE% 就可以得到用户目录的路径。Weka 3.7.2以下的版本直接将配置文件放在用户目录中,而Weka 3.7.2以上的版本则需要将配置文件放在用户目录下的wekafiles/ props子目录中。

(3) 类路径中。通常是weka.jar文件。 
  注意: Weka也是按上述顺序去查找配置文件的,找到后就不再进行查找。因此前面位置优先于后面位置。

5.配置RunWeka.ini

    打开,最后一行编写cp=%classpath% (这个classpath,与系统环境变量的classpath,要一样,大小写也不能错。我就是自己配置的classpath,而RunWeka.ini最后一行的是大写的CLASSPATH,我没有改。结果导致无法连接数据库。显示的错误是exception: java.sql.SQLException: Unable to find a suitable driver ......。更正过来就好了

6.访问数据库

    重新启动Weka。在Weka GUI 选择器中,单击右边的第一个按钮Explorer,启动探索者,单击探索者的第三个按钮Open DB,弹出如图1.18所示的SQL查看器窗口。注意到URL栏的内容,已经变成了前文修改的配置文件中jdbcURL的值。如下图所示:


点击这个: ,输入自己建立的账号密码,如下图所示:

  单击按钮连接数据库,如果前面的设置无误,会在SQL查看器窗口的下部出现数据库已连接的提示,如下图示:


  现在,需要从数据库中查询数据。由于我数据库没有录入数据所以无法演示了。若你已经将数据集导入到数据库中,因此只需要输入SQL语句,单击Execute按钮执行查询,就会出现查询结果。

我所采取的操作:

环境变量:classpath=D:\Study\SQLjdbc\sqljdbc_3.0\chs\sqljdbc4.jar;

DatabaseUtils.props文件中:

 jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbcURL=jdbc:sqlserver://localhost:1433;databaseName=weka

配置RunWeka.ini中:最后一行编写cp=%classpath% 。可以写全路径:
D:\Study\SQLjdbc\sqljdbc_3.0\chs\sqljdbc4.jar;写全路径绝对没问题。

二. 常见问题及解决办法 
如果读者没有连接上数据库,不要着急。按如下顺序依次检查可能产生问题的设置:数据库驱动程序是否正确?CLASSPATH的设置是否正确?配置文件中jdbcDriver和jdbcURL两项配置是否正确拼写?配置文件是否放到正确位置?数据库用户名和密码是否正确?该数据库用户是否拥有足够权限?数据库是否已经启动(我测试好像,数据库没有打开,就无法连接)?等等。 
若以上方法都未能解决问题,建议尝试修改RunWeka.ini配置文件,在weka\Weka-3-8目录下,将驱动jar文件的地址直接加入配置文件。 

参考链接:

http://blog.csdn.net/u014726937/article/details/52786502

https://www.cnblogs.com/zhouf330/p/7889556.html

http://www.cnblogs.com/yuan2016/p/5358830.html

http://wandejun1012.iteye.com/blog/1197545http://blog.csdn.net/wuting3680278/article/details/69257658?locationNum=5&fps=1

袁梅宇. 数控挖掘与机器学习:WEKA应用技术与实践[M]. 清华大学出版社, 2016.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值