博客
关于我
强烈建议你试试无所不能的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://jhlpi.baihongyu.com/

你可能感兴趣的文章
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>