java调用存储过程问题

hebeiman 2004-04-22 08:36:33
public boolean delDepartment(String id,boolean isDel){
String strSql="{?=call delDepartment(?,?)}";
java.sql.CallableStatement sqlStmt;
boolean isSuccess;
try {
sqlStmt = conn.prepareCall(strSql);
sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);
sqlStmt.setString(2,id);
sqlStmt.setBoolean(3,isDel);
sqlStmt.execute();
int l=sqlStmt.getInt(1);
}
catch (SQLException ex) {
SQLExcptionLog(ex, "delDepartment");
isSuccess=false;
}

return false;
}

为什么的不到 返回参数
...全文
66 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
JavaCoffee 2004-09-28
将“sqlStmt.execute();”改为“sqlStmt.executeQuery();”
回复
shangqiao 2004-09-28
="{?=call delDepartment(?,?)}";
不能这么写吧,
// state=con.prepareCall("execute getName ?,?");
// state.registerOutParameter(2,Types.VARCHAR);
// state.setString(1,"001");
// state.execute();
// System.out.println(state.getString(2));
回复
Yujlyjl 2004-09-28
我给你个例子:
//存储过程P_GET_ID(?,?),第一个为输入参数,第二个为输出参数
public static int createID()
{
int id=Math.abs((int)(new java.util.Date()).getTime());;
try {
Context ctx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("ticsDS");
Connection conn = ds.getConnection();
CallableStatement cs=conn.prepareCall("{call P_GET_ID(?,?)}");
cs.setString(1,"YHSCX_ZTB");
cs.registerOutParameter(2,java.sql.Types.INTEGER);
cs.execute();
id=cs.getInt(2);
} catch (Exception e) {
e.printStackTrace();
}
return id;
}
回复
xu_xinyu 2004-09-28
String strSql="{?=call delDepartment(?,?)}";
不对,参数要全部放到括号中。
回复
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2004-04-22 08:36
社区公告
暂无公告