怎样使用JAVA调用Oracle的存储过程?up有分

tsingien 2004-06-14 03:17:17
最好能有教程,代码也不错^_^
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
freelarry 2004-06-22
  • 打赏
  • 举报
回复
OracleCallableStatement cstmt = null;
DBConnector dbc = new DBConnector();
Connection conn = dbc.getConnection();
try {
cstmt = (OracleCallableStatement) conn.prepareCall(
"{call aaaaa.SP_GETSEQUENCE(?,?)}");
cstmt.setString(1, strSequence);
cstmt.setLong(2, 0);
cstmt.registerOutParameter(2, java.sql.Types.BIGINT);
cstmt.executeUpdate();
return cstmt.getLong(2);
} catch (SQLException e) {
throw e;
} finally {
try {
if (cstmt != null) {
cstmt.close();
}
} catch (Exception e) {
System.out.println(e.toString());
}
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
wuyaxlz 2004-06-22
  • 打赏
  • 举报
回复
public void run()
{
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(e);
}
while (!procstop)
{
if (!inal.isEmpty())
{
try
{
//发送相同的回复信息给发送者
rm = (Recvmsg) inal.get(0);
orgaddr = rm.getOrgaddr();
destaddr = rm.getDestaddr();
content = rm.getContent();
System.out.println("proc recv orgaddr=" + orgaddr);
System.out.println("proc recv destaddr=" + destaddr);
System.out.println("proc recv content=" + content);
inal.remove(0);
if (conn.isClosed())
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
stmt = conn.createStatement();
/*int i =
stmt.executeUpdate(
"insert into email_log_record values('"
+ inname
+ "','"
+ inmsg
+ "',sysdate,'in')");*/
// Thread.sleep(1000);
//执行存储过程
CallableStatement proc =
conn.prepareCall("call zw_cmpp_PROC(?,?,?,?,?,?)");
proc.setString(1, orgaddr); //参数 id
proc.setString(2, destaddr); //内容
proc.setString(3, content);
proc.registerOutParameter(4, Types.VARCHAR);
//proc.registerOutParameter(4, Types.VARCHAR);
proc.registerOutParameter(5, Types.VARCHAR);
proc.registerOutParameter(6, Types.VARCHAR);
proc.execute();
sm = new Sendmsg();
send_org = proc.getString(4);
send_dest = proc.getString(5);
msg = proc.getString(6);
proc.close();
System.out.println("proc send orgaddr=" + send_org);
System.out.println("proc send destaddr=" + send_dest);
System.out.println("proc send content=" + msg);
sm.setContent(msg);
sm.setOrgaddr(send_org);
sm.setDestaddr(send_dest);
sm.setSend_times(0);
outal.add(sm);
//发送
/*stmt.executeUpdate(
"insert into email_log_record values('"
+ outname
+ "','"
+ outmsg
+ "',sysdate,'out')");*/
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(e);
try
{
Class.forName(sDBDriver);
conn = DriverManager.getConnection(url, use, pwd);
}
catch (Exception ex)
{
}
}
}
else
{
try
{
sleep(100);
}
catch (Exception e)
{
}
}
try
{
sleep(10);
}
catch (Exception e)
{
}
}
}
freelarry 2004-06-22
  • 打赏
  • 举报
回复
stme= OracleCallableStatement.....如果你用的是oracle的驱动的话。
如果你用weblogic中自带的驱动,stmt=CallableStatement....
jiqiyumen 2004-06-22
  • 打赏
  • 举报
回复
参考CallableStatement类的文档
tsingien 2004-06-15
  • 打赏
  • 举报
回复
:(
tsingien 2004-06-14
  • 打赏
  • 举报
回复
????
tsingien 2004-06-14
  • 打赏
  • 举报
回复
我的问题怎么了?怎么就显示不出来?我up一下看看

62,623

社区成员

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

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