如何用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 展开
我的查询语句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 展开
2个回答
展开全部
方式一:
简单的使用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
简单的使用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 /*存储过程*/
展开全部
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遍历,不再累述
");
stme.setInt(1, 1);
后面的代码就是取ResultSet遍历,不再累述
更多追问追答
追问
哥们那个看下上面的 我需要的是个存储过程将这个语句变成存储过程该怎么做 然后在用java调用
追答
什么数据库?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询