博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java servlet 调用oracle数据库存储过程
阅读量:4125 次
发布时间:2019-05-25

本文共 2728 字,大约阅读时间需要 9 分钟。

servlet首先建立数据库连接类ConnectFactory:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import javax.naming.InitialContext;import javax.sql.DataSource;public class ConnectFactory {	private  Connection conn;	private  DataSource connnectionPool;                //链接中间件的连接池	public ConnectFactory(){	    try {	      InitialContext ctx = new InitialContext();	      connnectionPool = (DataSource) ctx.lookup("PaymentDS");	    }	    catch (Exception e) {	    	e.printStackTrace();	    }	} 	        //获得连接池的链接对象	public  Connection getConn() throws Exception {	    try {	      conn=connnectionPool.getConnection();	      return conn;	    }	    catch (SQLException sqle) {	      throw new Exception();	    }	  }		static{		try{			Class.forName("oracle.jdbc.driver.OracleDriver");		}catch(ClassNotFoundException e){			throw new ExceptionInInitializerError(e);		}	}	        //获得手写链接字符串的链接	public static Connection getConnection() throws SQLException{		return DriverManager.getConnection("jdbc:oracle:thin:@192.168.2.37:1521:sdecp","eca","errors");	}}
外部调用链接:

public Map getBusinessB2ADeal(String b2aNo) throws Exception{		Map res = null;		Connection con = ConnectFactory.getConnection();//		Connection con = new ConnectFactory().getConn();		CallableStatement cs = con.prepareCall("{call proc_business_b2aNo(?,?,?,?,?,?)}");		cs.setString("b2aNo", b2aNo);		cs.registerOutParameter("b2aBank", Types.VARCHAR);		cs.registerOutParameter("b2aAmount", Types.DOUBLE);		cs.registerOutParameter("b2aType", Types.VARCHAR);		cs.registerOutParameter("b2aNotify", Types.VARCHAR);		cs.registerOutParameter("b2aBill", Types.VARCHAR);		cs.execute();				String b2aBank = cs.getString("b2aBank");	        String b2aAmount = cs.getString("b2aAmount");		String b2aType = cs.getString("b2aType");		String b2aNotify = cs.getString("b2aNotify");		String b2aBill = cs.getString("b2aBill");	    	    if(!StringUtils.isEmpty(b2aBank)){	    	res = new HashMap();	    	res.put("bankId", b2aBank);	    	res.put("amount", b2aAmount);	    	res.put("b2aType", b2aType);	    	res.put("b2aNotify", b2aNotify);	    	res.put("b2aBill", b2aBill);	    }	    cs.close();	    con.close();	    return res;	}
存储过程:

CREATE OR REPLACE PROCEDURE proc_business_b2aNo(  b2aNo in varchar2,  b2aBank out varchar2,  b2aAmount out NUMBER,  b2aType out varchar2,  b2aNotify out varchar2,  b2aBill out varchar2)ISBEGIN  SELECT tb2a.b2a_bank,tb2a.b2a_amount,tb2a.b2a_Type,tb2a.b2a_NOTIFY,tb2a.b2a_Bill       INTO b2aBank,b2aAmount,b2aType,b2aNotify,b2aBill  FROM t_b2a tb2a WHERE tb2a.b2a_no = b2aNo;   EXCEPTION     WHEN NO_DATA_FOUND THEN       NULL;     WHEN OTHERS THEN       -- Consider logging the error and then re-raise       RAISE;END proc_business_b2aNo;

转载地址:http://oplpi.baihongyu.com/

你可能感兴趣的文章
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>
Java通用字符处理类
查看>>
文件上传时生成“日期+随机数”式文件名前缀的Java代码
查看>>
Java代码检查工具Checkstyle常见输出结果
查看>>
北京十大情人分手圣地
查看>>
Android自动关机代码
查看>>
Android中启动其他Activity并返回结果
查看>>
2009年33所高校被暂停或被限制招生
查看>>
GlassFish 部署及应用入门
查看>>
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>
如何运行从网上下载的iWatch项目详细步骤.
查看>>
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
查看>>
Xcode 报错: Extra argument in call
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
#import <Cocoa/Cocoa.h> 报错 Lexical or Preprocessor Issue 'Cocoa/Cocoa.h' file not found
查看>>
`MQTTClient (~> 0.2.6)` required by `Podfile`
查看>>