
数据库连接池我就不给你写了,你应该会。
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取出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)