公告 |
求真务实打基础, 宁缺毋滥读好书。
数据挖掘青年(DMman) |
链接 |
|
Blog信息 |
blog名称:DMman(数据挖掘青年) 日志总数:102 评论数量:564 留言数量:57 访问次数:1768070 建立时间: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 |
|
回复:Weka如何连接数据库 原创空间
suny(游客)发表评论于2007/11/12 18:04:30 |
请教一下,在安装weka前,这些驱动程序都要先独立安装吗?lib目录中的三个jar文件是不是复制到jdk中的lib的ext文件夹中.谢谢指教
初学者以下为blog主人的回复: 1 安装weka和驱动程序直接没有顺序关系 2 你说的jre\lib\ext吧,理论上jar复制过去就可以,按说放到jdk\lib下面也可以。不过根据JDK版本的关系,最好将三个jar的完整路径分别加到classpath比较彻底 |
|
回复:Weka如何连接数据库 原创空间
wekaf(游客)发表评论于2007/11/9 14:44:56 |
我想请问一个问题,按照楼主的说法,我用的是jdbc-odbc连接sqlserver2000,连接后提示我“connecting to: jdbc:odbc:TEMS = true”
但是我想执行查询“select * from test”
却出现了错误“exception: java.lang.Exception: [Microsoft][ODBC SQL Server Driver][SQL Server]。”我的数据源叫做TEMS,数据库也叫TEMS,我在查询的时候需要有什么格式要注意的吗?为为什么不能查到我test表中的数据呢? 期盼您的答案
以下为blog主人的回复:
1 “connecting to: jdbc:odbc:TEMS = true”表示已经连接成功了,查询有问题就是sql语句的事情了
2 “对象名 'test' 无效”: 莫非是您的表名和数据库中的不对应?你可以把要使用的sql查询语句先在sql server的查询分析器里测试一下。 |
|
回复:Weka如何连接数据库 原创空间
MA(游客)发表评论于2007/9/27 13:46:34 |
你好,我用的是weka 3.5.6 但依然没有DatabaseUtils.props文件,只有DatabaseUtils.html文件,请指点一下,多谢兄弟。请加我qq 112493828 感激不尽。
以下为blog主人的回复:
客气了。 |
|
回复:Weka如何连接数据库 原创空间
KevinXer(游客)发表评论于2007/8/23 16:26:46 |
我想问下,为什么我把三个jar文件加到CLASSPATH里面,怎么还是报没有找到数据库驱动,这是怎么回事呢,,我用的是SQL2000....
以下为blog主人的回复:
初级问题,可以是加的方式不正确罢~~ |
|
回复:Weka如何连接数据库 原创空间
xpanda(游客)发表评论于2007/6/6 17:57:26 |
我再去看看
谢谢你的解答
以下为blog主人的回复:
不客气:-)查看文件的话 可以选择列表方式 他自动按名称排序 而且扩展名也都显现出来了 这样就看的清楚了 |
|
回复:Weka如何连接数据库 原创空间
xpanda(游客)发表评论于2007/6/6 11:31:49 |
请问第一步的安装驱动程序是怎么搞的啊?
是安装weka的吗?还是什么?
我的weka\experiment下没有DatabaseUtils.props文件啊?我用了3-4-10和3-5-5都没找到,求助!!
以下为blog主人的回复:
安装weka是肯定的;我指的是JDBC连接数据库 必须安装该数据库的驱动程序.如果是sql server2000,则需要安装sql2000 for jdbc setup.exe;并且安装后的目录lib里有三个jar文件,要加到classpath里。
我看过了,weka的源文件解压和编译后的类解压, weka\experiment下都有DatabaseUtils.props。你的为什么没有呢?你再仔细看看。不但有DatabaseUtils.props还有DatabaseUtils.props.oracle;DatabaseUtils.props.mysql;DatabaseUtils.props.mssqlserver等 |
|
|