日期:2014-05-20  浏览次数:20687 次

java 如何存储数据表
pstmt = connection().prepareStatement(sql);
pstmt.executeQuery();

是查询一个并返回一个表的内容,现在我想要查询存储过程,一次返回多个表

java 里面是用什么来实现一次性存储多个数据集的集合呢


存储过程类似这种的,我只是举个例子
CREATE PROCEDURE tables
declare @name 
  declare @pass
AS
BEGIN
select * from users where names=@name and pass=@pass
  select * from book 
  select * from admin 
END
GO

.net 用这个来接收 DataSet
java 用什么来接收呢????
能不能像.net 那样 
DataSet.table[0]
DataSet.table[1]
DataSet.table[2]
的分别获取数据集中的某一个表呀...

菜鸟请教,望高手赐教

------解决方案--------------------
如果用rms的话只能实现简单的数据存储
如:Cvs.rms.put("isOpenJuQing", new int[] { isOpenJuQing });
ScnGame.isOpenJuQing = Cvs.rms.get_i("isOpenJuQing")[0];
至于其它的话。未尝试过,不宜开口
------解决方案--------------------
要定义多个输出参数作为返回,可以去Google下关于:JDBC 存储过程 多数据集。

但是这样堆内存开销会增大很多,而且完全没看出楼主要这么做的必要性。

你做多个Select或者一个合并的结果集会更合理些。
------解决方案--------------------
Java code

    Connection conn = null;
    CallableStatement cstmt = null;
    ResultSet rs=null;
    cstmt = conn.prepareCall("{call proName(?)}");
    cstmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);//参数索引
    rs = (ResultSet) cstmt.getObject(1);