公告
求真务实打基础, 宁缺毋滥读好书。
数据挖掘青年(DMman)
链接
Blog信息
blog名称:DMman(数据挖掘青年) 日志总数:102 评论数量:564 留言数量:57 访问次数:1767208 建立时间:2007年4月9日
[Weka] Weka如何连接数据库 原创空间
数据挖掘青年 发表于 2007/5/24 17:26:15
Weka如何连接数据库
作者:DMman(数据挖掘青年)
以SQL Server2000为例,使用jdbc-odbc桥的方式。其他的数据库操作方法一样,具体细节各异。
1 jdbc-odbc桥的方式不用安装驱动程序,我们在管理工具里面建个数据源。
2 修改 weka\experiment下的DatabaseUtils.props文件。
********************将weka安装目录下的weka.jar解压后 就可以看到weka\experiment\DatabaseUtils.props目录********************
我们可以看到有DatabaseUtils.props.odbc;DatabaseUtils.props.oracle等我们先将DatabaseUtils.props随便改成一个其他的名字,然后将DatabaseUtils.props.mssqlserver改成DatabaseUtils.props,打开现在的DatabaseUtils.props可以看到以下部分:(#表示注释)
2.1驱动加载# JDBC driver (comma-separated list)jdbcDriver=sun.jdbc.odbc.JdbcOdbcDriver2.2数据库连接
# database URLjdbcURL=jdbc:odbc:(这里是你建的数据源的名称)
2.3数据类型的转换。由于weka仅支持名词型(nominal)、数值型(numeric)、字符串、日期(date)。所以我们要将现在数据库中的数据类型对应到这四种类型上来。
将以下数据类型对应的句子前面的注释符合去掉。由于SQL Server2000有其他的数据类型Weka尚不能识别,所以我们在下面再添加上smallint=3datetime=8等等
string,getString()= 0; -->nominalboolean,getBoolean() = 1; -->nominaldouble,getDouble() = 2; -->numericbyte,getByte() = 3; -->numericshort,getByte()= 4; -->numericint,getInteger() = 5; -->numericlong,getLong() = 6; -->numericgloat,getFloat() = 7; -->numericdate,getDate() = 8; -->datevarchar=0float=2tinyint=3int=53其他说明,暂时不用去管了(我也不是很明白...)# other optionsCREATE_DOUBLE=DOUBLE PRECISIONCREATE_STRING=VARCHAR(8000)CREATE_INT=INTcheckUpperCaseNames=falsecheckLowerCaseNames=falsecheckForTable=true********************注意,因为weka软件运行时需要读取weka。jar,所以你修改之后要重新打包jar文件替换原来的jar才可以运行weka软件成功连接数据库********************
4 OK,下面可以操作了!运行weka的Explore界面后,通过Open DB..打开SQL Viewer工作界面(3.5.5版本比3.4.10在这里精细了许多)。通过user我们设置好用户名和密码后即可connect;连接成功后,可以通过书写sql语句查询出想要的结果后,OK即可在Explore界面的preprocoss面板中看到了输入的数据。********************查询出结果来,OK导入Explore时可能会出错,说某个类型无法识别,这时候 就要看看在2.3步骤那里是否加入了该数据类型********************在连接读取数据库的数据时,SQL Viewer面板也提供了Info,相当与我们单纯用jdbc连接数据库时的调试信息。
下面是我使用的sql server 2000的数据库配置文件 可以看看
500)this.width=500'>DatabaseUtils.rar
解包打包! 原创空间
liuxifatiaocheng(游客)发表评论于2012/3/27 13:56:53
你好,按照你的方法是不能用解压软件直接解压了?那怎样解包打包呢?我解压改好后,按照你的方法打不了?要怎样解决啊 QQ455979095希望能通过QQ及时交流!因为毕设用到这个 但是连oracle都连不上
回复:Weka如何连接数据库 原创空间
liuxifatiaocheng(游客)发表评论于2012/3/27 10:57:46
weka.jar解压后修改完prop文件后怎么样重新打jar包 初学者希望指导一下qq455979095 万分感激!
出现问题:No suitable driver found for 原创空间
fanalin(游客)发表评论于2010/12/21 10:48:56
Sql Server 2000 的三个JAR驱动包已经添加到JAVA_Home/.../ext和环境变量classpath中, 在Weka的Sql-Viewer中填写好URL,用户名,密码之后点击Connect,显示connecting to:jdbc:odbc:(我的数据源名称)=true, 连接成功。 可是当我点击OK想返回explorer界面的时候弹出一个错误提示:Problem connecting to database:No suitable driver found for。
请问这个是什么原因? 是驱动包不对(三个JAR文件:msbase.jar;mssqlserver.jar;msutil.jar)? 还是环境变量少了什么(我的classpath: dt.jar;htmlconverter.jar;jconsole.jar;tools.jar;msbase.jar;mssqlserver.jar;msutil.jar)? 或者是别的地方出了问题吗?求楼主指点迷津!!
回复:Weka连接MySQl数据库成功但是不能查询 原创空间
fffff(游客)发表评论于2009/4/28 21:35:02
提示如下:
connecting to: jdbc:mysql://localhost:3306/digitaljilin = true
Query: select * from road
Unknown number of rows selected (due to JDBC driver restrictions).
恳请楼主解答,小弟万分感谢
回复:Weka如何连接数据库 原创空间
YANYUSHU(游客)发表评论于2009/4/24 12:49:17
我是这样做的:1.安装weka-3-5-8.exe2.在安装目录下新建lib目录,并将ojdbc14.jar放入其中3.将ojdbc14.jar加入环境变量CLASSPATH4.修改DatabaseUtils.props如下:# Database settings for Oracle 10g Exdivss Edition## url: http://www.oracle.com/# jdbc: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/# author: Fracpete (fracpete at waikato dot ac dot nz)# version: $Revision: 1.3 $
# JDBC driver (comma-separated list)jdbcDriver=oracle.jdbc.driver.OracleDriver
# database URLjdbcURL=jdbc:oracle:thin:@localhost:1521:Train
# 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 gloat, getFloat() = 7; --> numeric date, getDate() = 8; --> date text, getString() = 9; --> stringCHAR=0NCHAR=0VARCHAR2=0NVARCHAR2=0RAW=9NUMBER=2BINARY_FLOAT=2DATE=8TIMESTAMP=8ROWID=9DOUBLE_divCISION=2
# other optionsCREATE_INT=INTEGERCREATE_STRING=VARCHAR2(4000)CREATE_DOUBLE=NUMBERcheckUpperCaseNames=truecheckForTable=true
5.将weka.jar重新打包,运行结果连接不上数据库,显示:connecting to jdbc:oracle:thin:@localhost:1521:Train=falseexception: java.sql.SQLException:No Suitable driver
请楼主指教!!!
以下为blog主人的回复:
将ojdbc14.jar加入环境变量CLASSPATH
错误提示表明 这个jar程序找不到。你先试试别重新打包,使用cmd调出来的控制台 用java命令启动
回复:Weka如何连接数据库 原创空间
笑看人生(游客)发表评论于2008/12/29 22:32:02
我的connect 时出现了:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
究竟是什么问题啊?希望能够得到解决。谢谢
以下为blog主人的回复:
SQLServer 2000没打补丁。
回复:Weka如何连接数据库 原创空间
beaver(游客)发表评论于2008/11/5 20:50:33
楼主你好: 我将DatabaseUtils.props文件的字段修改后,不能保存成.jar的格式,我按上面的方法试过了,报错,Unable to access jarfile cvfm,请问是怎么回事啊,并且,将原weka.jar文件解压后weka文件夹下应该有很多文件夹啊,这些怎么办啊,是不是要保留啊
以下为blog主人的回复:
1 你重新打成weka.jar 有问题,方式不对,是不是没有建立.MF
文件?正确打包后的jar可以双击运行
2 解压后的那些文件不影响
回复:Weka如何连接数据库 原创空间
燕子(游客)发表评论于2008/4/18 12:00:01
请问楼主,weka中数据处理的模块是哪些类?以下为blog主人的回复: 你可以看看weka的帮助文档,类似于jdk的chm那样的
回复:Weka如何连接数据库 原创空间
fishermanfriend(游客)发表评论于2008/4/9 22:24:57
请问孤立点方面的挖掘需要用到哪些算法。新生上路,请多指教。以下为blog主人的回复: 聚类吧
回复:Weka如何连接数据库 原创空间
Diamond79(游客)发表评论于2008/4/2 15:26:01
按照上面的方法,连接数据库的时候提示没有合适的驱动:no suitable driver.我的驱动都装了,这是为什么哦???
以下为blog主人的回复:
没有加到环境变量里把?