java 如何接收 oracle 的 select 查询结果 并赋值给变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何接收 oracle 的 select 查询结果 并赋值给变量相关的知识,希望对你有一定的参考价值。
比如
int a;
a=s.executeQuery("select host_client from emp where deptno=40");
我想实现 上面的意思。
Connection conn = null;
int a = 0;
try
try
//1 注册驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//2 连接数据库
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger");
catch(Exception e)
System.out.println("没有得到数据库连接");
e.printStackTrace();
return conn;
sql="select host_client from emp where deptno='40' ;";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next())
a = rs.getInt("host_client");
catch(Exception e)
e.printStackTrace();
finally
closeRs(rs);
closePs(ps);
closeConn(conn);
return a;
这就能取到了 但是 你问这么。。。个问题 感觉你这些代码也看不懂???是不是追问
ps rs 是 什么类型啊
追答。。。。。我的错
PreparedStatement ps=null;
ResultSet rs=null;
String sql=null;
Iteratro it =vlist.iterator();
while(it.hasNext())
Emp emp=(Emp )it.next();// 转换为 ENTITY 类
int a=emp.getHost_client();// 这是你要的值
参考技术D 使用jdbc呗
从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]
【中文标题】从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]【英文标题】:Translation from Java to Oracle SQL: use every element into a loop as result of a SELECT statement [closed] 【发布时间】:2021-01-18 15:51:30 【问题描述】:这是我第一次使用 Oracle 功能。 我正在尝试将这段 Java 代码翻译成 Oracle SQL。
It's present a SELECT statement before the loop
for (int i = 0; i < checkList.size(); i++)
String check= checkList.get(i);
我的翻译:
CURSOR C1 IS
... select statement ...
BEGIN
FOR vItems IN C1.COUNT LOOP
-- I don't know how to continue, taking the first value of the select
END LOOP;
END;
【问题讨论】:
没有足够的信息来尝试翻译。在 Java 代码中,使用了变量first
,但没有提及它可能包含什么值。同样,有一个flag.set
和一个flags.set
。什么是/是flag
/flags
,set
方法有什么作用等等? String priority
被赋予了一个值,但似乎没有以其他方式使用。并且没有显示据称驱动此逻辑的 SELECT 语句,因此无法理解发生了什么。
@BobJarvis-ReinstateMonica 但是如果我想对查询的结果一一评估,怎么办?
@BobJarvis-ReinstateMonica 第一部分很重要。如何将 select 语句中的值评估到循环中
【参考方案1】:
假设您想为表 EMP
和架构 SCOTT
中的每个 EMPNO
做一些事情。 (几乎每个 Oracle 数据库安装都有一个标准架构 SCOTT
;其中一个表是 EMP
,主键为 EMPNO
。这通常用于测试和说明。)
要在循环中对EMPNO
的每个值执行某些操作,在 PL/SQL 中,您可以执行以下操作:
declare
cursor c1 is select empno from scott.emp;
begin
for rec in c1 loop
dbms_output.put_line(rec.empno); -- or more generally, "DO SOMETHING"
end loop;
end;
/
请注意,这里没有“数组索引”——您直接引用“记录”。 (顺便说一句,如果您希望以特定顺序处理行,您可以将其包含在 order by
子句中,直接在 select
语句中!)
虽然你可以写得更紧凑(我认为在 Java 中没有等价物):
begin
for rec in (select empno from scott.emp) loop
dbms_output.put_line(rec.empno);
end loop;
end;
/
【讨论】:
能保证rec.empno变成一个变量吗?我可以直接使用 rec.empno 作为 switch 语句吗?谢谢 @OutOfMemoryError - 你尝试的时候发生了什么?以上是关于java 如何接收 oracle 的 select 查询结果 并赋值给变量的主要内容,如果未能解决你的问题,请参考以下文章
从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]