提问:如何在servlet中调用ORACLE的PL/SQL的存储过程

oak_leaf 2002-08-02 10:27:59
如何在servlet中调用ORACLE的PL/SQL的存储过程?愿各位大虾教我。
...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_r_h 2002-08-02
  • 打赏
  • 举报
回复
import java.math.BigDecimal;
import java.sql.*;

public class JdbcTest {

public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
CallableStatement call=null;

try {
String url="jdbc:oracle:thin:@oracle:1521:oracl";
String driver="oracle.jdbc.driver.OracleDriver";
String user="scott";
String password="tiger";
Class.forName(driver) ;
conn=DriverManager.getConnection(url,user,password) ;
call=conn.prepareCall("{call AddAccount(?,?)}") ;
call.setInt(1,8) ;
call.setInt(2,700) ;
int i=call.executeUpdate() ;
System.out.println("Call Procedure,update "+i);
if(call!=null)
call.close();
call=conn.prepareCall("{ call GetBalance(?,?)}") ;
call.setInt(1,3) ;
call.registerOutParameter(2,Types.INTEGER) ;
call.execute() ;
System.out.println(call.getInt(2) );

if(call!=null)
call.close();
stmt=conn.createStatement() ;
rs=stmt.executeQuery("SELECT * FROM Account") ;
System.out.println(" AccountNo Balance ");
while(rs.next() ) {
System.out.println(" "+rs.getInt("AccountNo")+" "+rs.getInt("Balance") );
}

if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
}
catch (Exception ex) {
ex.printStackTrace() ;
}
finally {
try {
if(conn!=null)
conn.close();
}
catch (SQLException e) {
e.printStackTrace() ;
}
}
}
}
salute 2002-08-02
  • 打赏
  • 举报
回复
和在BEAN中调用一样.
请查看java.sql.CallableStatement

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧