[急]问题:java调用sql server存储过程 从JSP页面传入8个参数s1,s2,s3,s4,s5,s6,s7,s8,都不能为空,有一个存储过程proc_aa是判断这8个参数的状态返回一个值stauts,用一个java类来调用这个存储过程,返回stauts求达人帮忙。多谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String procedure_name="update_user_data";String call_procedure_string="{call "+procedure_name+"(?,?,?,?,?,?,?) }";try{Connection con;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","");CallableStatement callable_statement=con.prepareCall(call_procedure_string);//创建对象callable_statement.setString(1,"xxbit");callable_statement.setString(2,"xxb");callable_statement.setInt(3,23);callable_statement.setString(4,"男");callable_statement.setString(5,"哈尔滨");callable_statement.setString(6,"11111");callable_statement.setLong(7,2);callable_statement.executeUpdate();con.close();}catch(SQLException e1){out.println("SQL异常!"); }%> 谢谢楼上的调用存储过程之后,存储过程还要返回一个stauts值啊 这怎么写? 如果是更新操作判断executeUpdate()方法是否返回>0不就行了 connection.setAutoCommit(false); CallableStatement proc = connection.prepareCall("{ ? = update_user_data(?,?,?,?) }"); proc.registerOutParameter(1, Types.INTEGER); ...cs.execute(); int result= proc.getInt(2); 当存储过程返回一个值时,你必须使用registerOutParameter方法告诉JDBC驱动器该值的SQL类型是什么。你也必须调整存储过程调用来指示该过程返回一个值。 sorry,int result= proc.getInt(2); should beint result= proc.getInt(1); 有关servlet多线程的疑惑! 关于页面取得日期的问题 用过jasperreports的大侠请到这里来解决JasperViewer.viewReport 这个怪问题,来者有分 请问哪位高手用过OyworkFlow工作流框架来做过工作流软件?很急!!!!!!!!! JSP如何配置MS SQL 2K数据库 ss 请问java能不能开发com通讯? 关于创建字体的问题 JSP中的Cookie prepareStatement怪异错误 初学者提问:appfuse中的taglib为什么不需要在web.xml中定义<taglib location>? 新手问题:JSP怎样连接ACCESS数据库?
String call_procedure_string="{call "+procedure_name+"(?,?,?,?,?,?,?) }";try{
Connection con;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","");
CallableStatement callable_statement=con.prepareCall(call_procedure_string);//创建对象
callable_statement.setString(1,"xxbit");
callable_statement.setString(2,"xxb");
callable_statement.setInt(3,23);
callable_statement.setString(4,"男");
callable_statement.setString(5,"哈尔滨");
callable_statement.setString(6,"11111");
callable_statement.setLong(7,2);
callable_statement.executeUpdate();
con.close();
}
catch(SQLException e1){
out.println("SQL异常!");
}
%>
调用存储过程之后,存储过程还要返回一个stauts值啊 这怎么写?
判断executeUpdate()方法是否返回>0不就行了
CallableStatement proc =
connection.prepareCall("{ ? = update_user_data(?,?,?,?) }");
proc.registerOutParameter(1, Types.INTEGER);
...
cs.execute();
int result= proc.getInt(2);
int result= proc.getInt(2);
should be
int result= proc.getInt(1);