如何用java程序处理oracle查询结果,详细如下

如何用java程序处理oracle查询结果,详细如下,第1张

数据库连接池我就不给你写了,你应该会。

int r = -1;

// 申明数据容器

HashMap<String, Object> map = null;

while (k++ < Size && rsnext()) {

// 获取一条数据内数据项目数

r = rsgetMetaData()getColumnCount();

// 构造数据容器

map = new HashMap<String, Object>();

for (int i = 1; i <= r; i++) {

// 循环获取表列名与对应数据

mapput(rsgetMetaData()getColumnName(i),rsgetObject(i));

// 这里计算平均值

//==========

// 代码略

//==========

//把平均值放入容器内

mapput("key",你计算的平均值);

}

//把容器放入列表

listadd(map);

}

你需要一张字典表,字典表里面包含,表名称,字段名称,表以及字段描述

存储过程里面动态构造查询语句

字典表比较麻烦需要包括:

数据库里面的表以及字段的数据字典名称以及字段名(例如dba_tables,dba_tab_columns等)

用户下面表和字段的相关信息(用户下的表,字段名称等,表里面每个字段都要在字典表里面有一条记录)

其他的你动脑想想吧。

package DBtest;

import javasqlConnection;

import javasqlDriverManager;

import javasqlStatement;

import javasqlResultSet;

import javasqlSQLException;

import javasqlBlob;

import javaioFileInputStream;

import javaioFileOutputStream;

import javaioInputStream;

import javaioOutputStream;

public class getDataFrmDB {

public getDataFrmDB() {

}

public static void main(String args[]) {

getDataFrmDB test = new getDataFrmDB();

if (testgetDate()) {

Systemoutprint(" *** 作成功!");

}

else {

Systemoutprint(" *** 作异常!");

}

}

public boolean getDate() {

Connection conn = null;

Statement sql = null;

ResultSet rs = null;

try {

try {

//ClassforName("sunjdbcodbcJdbcOdbcDriver");

//String sourceURL = "jdbc:odbc:ORDB";

ClassforName("oraclejdbcdriverOracleDriver");

String sourceURL = "jdbc:oracle:thin:@127001:1521:ORDB";

String user = "thamsdt";

String password = "thamsdt";

conn = DriverManagergetConnection(sourceURL, user, password);

sql = conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,

ResultSetCONCUR_UPDATABLE);

//注:“ini”字段为BLOB字段

String sqlstr = "Select username,ini from S_USER where usercode='ROOT'";

rs = sqlexecuteQuery(sqlstr);

while (rsnext()) {

String name = rsgetString("username");

//如下使用JdbcOdbcDriver则报错:Hit uncaught exception javalangUnsupportedOperationException

//javasqlBlob blob = rsgetBlob("ini");

//注意这里的写法:使用的是OracleDriver

oraclesqlBLOB blob = (oraclesqlBLOB) rsgetBlob("ini");

String filepath = "C:/" + name + "ini";

Systemoutprintln("输出文件路径为:" + filepath);

try {

InputStream in = blobgetBinaryStream(); // 建立输出流

FileOutputStream file = new FileOutputStream(filepath);

int len = (int) bloblength();

byte[] buffer = new byte[len]; // 建立缓冲区

while ( (len = inread(buffer)) != -1) {

filewrite(buffer, 0, len);

}

fileclose();

inclose();

}

catch (Exception e) {

Systemoutprintln("I/O Exception");

return false;

}

}

}

finally {

rsclose();

sqlclose();

connclose();

}

}

catch (SQLException e) {

Systemoutprintln("SQLException");

return false;

}

catch (ClassNotFoundException e) {

Systemoutprintln("ClassNotFoundException");

return false;

}

return true;

}

}

你的意思是不是要获取到“当前用户:user_id”这个的内容,如果是,两个方式可以解决:

1通过存储过程的出参,将“当前用户:user_id”连接串返回;

比如:

假设你的过程叫,prc_test,在参数列表中增加出参。

create or replace procedure prc_test(入参 in 类型, 出参 out 类型) is

begin

-- 逻辑实现

end;

出参就是你要把内容放进去,用来传值的变量。

2在过程中保存一张临时表,然后在java中查出这个临时表中保存的数据。

定义临时表table_temp

在过程中

insert into table_temp(msg) values ('当前用户:' || user_id);

以上就是关于如何用java程序处理oracle查询结果,详细如下全部的内容,包括:如何用java程序处理oracle查询结果,详细如下、java搜索时,想将oracle数据库中某个用户下所有表中包含关键字(如“中国”)的记录找出来、oracle数据库表中,存在一个blog类型的字段,怎么用Java取出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9607755.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存