weka-Oracle数据库连接及以ARFF文件导出[2]
2016-06-12 15:32
871 查看
weka 在 eclipse 直接连接Oracle 取数据,需要修改weka包中的配置文件。
在使用weka包连接数据库前,我们先研究 eclipse 如何连接oracle取数据
1,eclipse 连接oracle取数据
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) throws Exception{
//1.准备参数
String ip = "125.210.207.51";
String sid = "wasubi@b64>>......"; // 这里我隐藏了sid,读者可以根据自己连接数据的sid替换掉
String port = "1521";
String dbUser = "yangt";
String dbPassword = "wasu1234";
String driver = "oracle.jdbc.driver.OracleDriver";
//2.构造驱动实例
Class.forName(driver);
//3.创建连接
//连接字符串是固定的形式,oracle的形式:
String url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + sid; // 注意这里url的格式,weka将使用这种格式
System.out.println(url);
Connection conn= DriverManager.getConnection(url, dbUser, dbPassword);
//4.执行SQL语句
String sql = "select * from MONTH_KAIJI1 t where rownum<10";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);//执行sql语句
while(rs.next()){
String id = rs.getString(1);
int pwd = rs.getInt(2);
System.out.println(id+"-"+pwd);
}
rs.close();
stmt.close();
conn.close();
}
}
2,在eclipse 中使用weka包连接oracle数据取数,首先修改配置文件:
2.1,获得 String url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + sid;
即:jdbc:oracle:thin:@125.210.207.51:1521:wasubi@b64>>......
2.2,在weka包中的--weka--experiment--databaseUtils.props.oracle文件中,jdbcURL=jdbc:oracle:thin:@server_name:1521:XE 中改为:
jdbcURL=jdbc:oracle:thin:@125.210.207.51:1521:wasubi@b64>>............
2.3,数据类型前的#全部去掉
# string, getString() = 0; --> nominal
改为:
string, getString() = 0; --> nominal
2.4,databaseUtils.props.oracle文件改名为databaseUtils.props
2.5,在eclipse 使用weka包连接oracle,代码中顺带将数据库中的数据存在了Arff格式的文件
import java.io.File;
import weka.core.Instances;
import weka.core.converters.ArffSaver;
import weka.experiment.InstanceQuery;
public class Weka2Oracle_t {
/*
* 数据库读入
*/
public static void main(String[] args) throws Exception{
InstanceQuery q=new InstanceQuery();
q.setUsername("yangt");
q.setPassword("wasu1234");
q.setSparseData(true);
q.setQuery("select * from MONTH_KAIJI1 t where rownum<10");
Instances d=q.retrieveInstances();
System.out.println(d);
// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(d);
saver.setFile(new File("data\\testcsv1.arff"));
saver.writeBatch();
}
}
在使用weka包连接数据库前,我们先研究 eclipse 如何连接oracle取数据
1,eclipse 连接oracle取数据
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) throws Exception{
//1.准备参数
String ip = "125.210.207.51";
String sid = "wasubi@b64>>......"; // 这里我隐藏了sid,读者可以根据自己连接数据的sid替换掉
String port = "1521";
String dbUser = "yangt";
String dbPassword = "wasu1234";
String driver = "oracle.jdbc.driver.OracleDriver";
//2.构造驱动实例
Class.forName(driver);
//3.创建连接
//连接字符串是固定的形式,oracle的形式:
String url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + sid; // 注意这里url的格式,weka将使用这种格式
System.out.println(url);
Connection conn= DriverManager.getConnection(url, dbUser, dbPassword);
//4.执行SQL语句
String sql = "select * from MONTH_KAIJI1 t where rownum<10";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);//执行sql语句
while(rs.next()){
String id = rs.getString(1);
int pwd = rs.getInt(2);
System.out.println(id+"-"+pwd);
}
rs.close();
stmt.close();
conn.close();
}
}
2,在eclipse 中使用weka包连接oracle数据取数,首先修改配置文件:
2.1,获得 String url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + sid;
即:jdbc:oracle:thin:@125.210.207.51:1521:wasubi@b64>>......
2.2,在weka包中的--weka--experiment--databaseUtils.props.oracle文件中,jdbcURL=jdbc:oracle:thin:@server_name:1521:XE 中改为:
jdbcURL=jdbc:oracle:thin:@125.210.207.51:1521:wasubi@b64>>............
2.3,数据类型前的#全部去掉
# string, getString() = 0; --> nominal
改为:
string, getString() = 0; --> nominal
2.4,databaseUtils.props.oracle文件改名为databaseUtils.props
2.5,在eclipse 使用weka包连接oracle,代码中顺带将数据库中的数据存在了Arff格式的文件
import java.io.File;
import weka.core.Instances;
import weka.core.converters.ArffSaver;
import weka.experiment.InstanceQuery;
public class Weka2Oracle_t {
/*
* 数据库读入
*/
public static void main(String[] args) throws Exception{
InstanceQuery q=new InstanceQuery();
q.setUsername("yangt");
q.setPassword("wasu1234");
q.setSparseData(true);
q.setQuery("select * from MONTH_KAIJI1 t where rownum<10");
Instances d=q.retrieveInstances();
System.out.println(d);
// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(d);
saver.setFile(new File("data\\testcsv1.arff"));
saver.writeBatch();
}
}
相关文章推荐
- 对oracle实例的内存(SGA和PGA)进行调整,优化数据库性
- ORACLE 专用服务器模式(DEDICATED)与共享服务器模式(SHARE)的区别
- Oracle存储过程基本语法 存储过程
- 为你介绍Oracle 11g数据库每天自动备份的实现方法
- ORA-100501: non-ORACLE exception
- Oracle EBS R12 电子技术参考手册 - eTRM (电子文档)
- trunc(sysdate)的含义是什么
- Oracle11.2新特性之listagg函数(多条数据用逗号隔开)
- ORACLE 表如何count最快?
- Oracle 导入dmp文件命令
- Entity Framework 6 Database-first连接Oracle11g
- python连接oracle数据库
- PL/SQL查询oracle数据库对象
- oracle利用flashback 闪回功能恢复delete数据
- Oracle 的安装与配置
- oracle 如何搜索当前用户下所有表里含某个值的字段?(转)
- oracle第四章复习
- ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法
- ASP.NET操作Oracle知识记录(采用ODP.NET)
- oracle——多表查询