救命啊!!!!!!!! 大哥 jdbc里怎样调用一个带参数的存储过程 jdbc里怎样调用一个写在PLSQL里只带输入参数的存储过程 这个存储过程主要是一个查询的结果集!大哥们能不能在plsql里给我写个这样的存储过程 因为我在测试的时候它老是说存储过程有问题! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CallableStatement cs = con .prepareCall("{callname(?,?)}"); cs.setString(1, startDate); cs.setString(2, endDate); cs.execute(); CallableStatement cs = con.prepareCall("{callname(?,?)}");cs.setString(1, startDate);cs.setString(2, endDate);cs.execute();这位大哥 我是这样搞滴 但是就是调不起来 我把代码给贴出来 主要是我不知道怎样写那个查询的存储过程/** * 执行存储过程,不支持有返回参数的存储过程。<br> * * @param dataSourceCode * 数据源<br > * @param procName * 存储过程名称<br > * @param params * 参数列表<br > * @return 用List包装的查询结果<br > * @throws Exception */ public List queryProc(String dataSourceCode, String procName, String[] params) throws Exception { Connection conn = connManager.getConnection(dataSourceCode); StringBuffer sb = new StringBuffer(); for (int i = 0; i < params.length; i++) { sb.append(params[i]); sb.append(" ,"); } String strSql=""; CallableStatement cste=null; if(params.length!=0){ strSql = sb.toString().substring(0, sb.toString().length() - 1); strSql="{call "+procName+"( " + strSql + ")}"; cste = conn.prepareCall(strSql); }else { cste = conn.prepareCall("{call "+procName+"}"); } for (int i = 0; i < params.length; i++) { cste.setString(i+1, params[i]); } List resultList = this.resultSetToList(cste.executeQuery()); //this.resultSetToList是个内不方法 cste.close(); RdbConnectionManager.closeConnection(conn); return resultList; } 测试的方法: public void testExecuteProc(){// String procName="proc_proj";// String[] params={"478","wwwww"};// try {// List list= sqlEngine.queryProc("1", procName, params);// assertNotNull(list);// }// catch (Exception e) {// e.printStackTrace();// fail(e.getMessage());// }// // }报错 oracle里抛数据库异常 关于字符的判断问题的问题,求解答 举个JAVA自定义事件类型的例子 谢谢 jlIST组件 InputStream 与 InputStreamReader 出现错误找不到File?why? 书中的代码,不能运行 ,请帮忙看下?? 谁能讲讲,为何在此等待键盘输入??????????? 错误: 非法的表达式开始 这句为什么会出错? 在eclipse官网下载的4.4.1 luna版 敲代码就提示 错误 请各位帮忙看下 谁会Struts标签多行提交? 显示中、日、韩文的问题
.prepareCall("{callname(?,?)}");
cs.setString(1, startDate);
cs.setString(2, endDate);
cs.execute();
.prepareCall("{callname(?,?)}");
cs.setString(1, startDate);
cs.setString(2, endDate);
cs.execute();这位大哥 我是这样搞滴 但是就是调不起来 我把代码给贴出来 主要是我不知道怎样写那个查询的存储过程
/**
* 执行存储过程,不支持有返回参数的存储过程。<br>
*
* @param dataSourceCode
* 数据源<br >
* @param procName
* 存储过程名称<br >
* @param params
* 参数列表<br >
* @return 用List包装的查询结果<br >
* @throws Exception
*/
public List queryProc(String dataSourceCode, String procName, String[] params) throws Exception {
Connection conn = connManager.getConnection(dataSourceCode);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < params.length; i++) {
sb.append(params[i]);
sb.append(" ,");
}
String strSql="";
CallableStatement cste=null;
if(params.length!=0){
strSql = sb.toString().substring(0, sb.toString().length() - 1);
strSql="{call "+procName+"( " + strSql + ")}";
cste = conn.prepareCall(strSql);
}else
{
cste = conn.prepareCall("{call "+procName+"}");
}
for (int i = 0; i < params.length; i++) {
cste.setString(i+1, params[i]);
}
List resultList = this.resultSetToList(cste.executeQuery()); //this.resultSetToList是个内不方法
cste.close();
RdbConnectionManager.closeConnection(conn);
return resultList;
}
测试的方法: public void testExecuteProc(){
// String procName="proc_proj";
// String[] params={"478","wwwww"};
// try {
// List list= sqlEngine.queryProc("1", procName, params);
// assertNotNull(list);
// }
// catch (Exception e) {
// e.printStackTrace();
// fail(e.getMessage());
// }
//
// }报错 oracle里抛数据库异常