如何用java调取带有列表返回值的存储过程

包括这个存储过程该怎么写我的查询语句selectp.item,p.type1,p.name,p.lvl,p.item_mode,p.type2,p.up_itemfrom... 包括这个存储过程该怎么写
我的查询语句select p.item,p.type1,p.name,p.lvl,p.item_mode,p.type2,p.up_item from pub_itemcode p where p.type1=1
展开
 我来答
托雷斯F
2014-06-04 · TA获得超过190个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:83.4万
展开全部
方式一:
简单的使用JDBC
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
List list = new ArrayList();
try{
Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(SQL); //这里的SQL就是你的查询语句

ResultSetMetaData md = rs.getMetaData();

int columnCount = md.getColumnCount();

while (rs.next()) {

Map map = new HashMap();

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

map.put(md.getColumnName(i), rs.getObject(i));

}

list.add(map);

}

}catch(SQLException e)
{
e.printStackTrace();
}

return list;
我自己写的,不管什么SQL,都可以查询获取到一个list
更多追问追答
追问
我需要将我写的sql变成存储过程 然后在调用 不是直接调用sql
追答
那更简单了。
CallableStatement proc = null;
proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }"); // 调用存储过程

Oracle

CREATE OR REPLACE PROCEDURE TESTB /*存储过程*/
alexmao4
推荐于2017-09-30 · TA获得超过1741个赞
知道大有可为答主
回答量:2350
采纳率:50%
帮助的人:447万
展开全部
CallableStatement stme=connection.prepareCall("select p.item,p.type1,p.name,p.lvl,p.item_mode,p.type2,p.up_item from pub_itemcode p where p.type1=?
");
stme.setInt(1, 1);
后面的代码就是取ResultSet遍历,不再累述
更多追问追答
追问
哥们那个看下上面的 我需要的是个存储过程将这个语句变成存储过程该怎么做 然后在用java调用
追答
什么数据库?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式