servlet 调用oracle数据库存储过程
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
)
IS
BEGIN
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;
servlet 调用oracle数据库存储过程相关推荐
- 【AIO】使用ORACLE数据库存储过程发送企业微信群机器人消息
前言 为了对标阿里系的钉钉,腾讯于2016年4月18日推出了企业微信 专注企业内部通讯(目前已加入客户管理及客户通讯功能),替代原有的RTX腾讯通 企业微信由于微信的生态及其易用性,已被很多企业使用, ...
- oracle数据库存储过程中NO_DATA_FOUND不起作用解决
oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...
- 使用shell脚本调用mysql数据库存储过程,并设置定时任务
本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调 ...
- Mybatis调用Oracle的存储过程
如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例: 1.在数据库中创建以下的存储过程: 2.编写SQL映射文件WxclDAO.xml: <select id=&quo ...
- oracle怎么调报表,集智数据平台报表如何调用Oracle数据存储过程
需要注意的是,当在单元格中用call函数调用存储过程时,执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个 数据集的数据来自存储过程.sql语句执行的时候要先编译,然后执行.存储过 ...
- 用.NET调用oracle的存储过程返回记录集
最近做一个项目,为了提高数据库安全性,客户要求所有数据库操作都要放在存储过程.象一般的更新操作,返回一个值的,都比较容易实现.而要想返回记录集就比较麻烦,我在网上搜了一下,这方面的文章并不多.在此总结 ...
- 编程开发之--Oracle数据库--存储过程和存储函数(2)
上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...
- 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)
在本系列学习随笔中的第2节我们留下了2个问题,我们现在讨论在out参数中使用光标. 1.要在out参数中使用光标,我们需要申明一个包的结构,包的结构分为包头和包体,包头只负责申明,包体只负责实现.包头 ...
- oracle spring 分页查询,SpringJDBC 调用oracle 通用存储过程分页
我博客前面有写道SpringJDBC调用通用的Oracle存储过程,今天来讲一下通用的Java存储过程带分页的功能,其中里面还有动态查询的SQL拼接,好的,先上代码 1.Java代码 @Autowir ...
最新文章
- matconvnet中使用fastrcnn遇到的问题
- java http get json_java实现Http post(参数json格式)、get 请求
- C++ 11 深度学习(八)重定义override
- shell执行perl_【编程技巧(一)】在Perl、Shell和Python中传参与输出帮助文档
- 位枚举(Bit Flags)
- laravel小记(composer 安装和predis使用)
- matlab 变量和数组中,求助:如何将带有符号变量的运算结果储存到数组中
- 面试绕不开的 CAP 理论,这篇文章帮你搞定!
- 每天10个Linux命令一
- ElasticSearch + Canal 开发千万级的实时搜索系统【转】
- 64位系统装32位计算机,32位的cpu能不能装64位系统|cpu是32位的可以装64位系统吗...
- 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
- HTML5 视频直播那些事儿+吕小鸣博客
- 经验分享:新媒体运营离不开的几款运营软件
- c语言字符三维数组定义时赋值,c语言中三维数组的赋值顺序?
- [LiteratureReview]A survey of image semantics-based visual simultaneous localization and mapping....
- zabbix模板关联群组
- 教师专业技能考试试题计算机,Zmxepv信息技术教师考试题库
- 《海豹突击队体能训练手册》——序
- 第六章(1.5)深度学习实战——利用RNN和LSTM生成小说题记
热门文章
- 山东鲁能轨道智能巡检机器人_温湿度传感器在轨道巡检机器人中的应用
- 计算机中丢失了ll是什么意思,丢失了ntoskrnl.exe和hal.ll
- gpio驱动蜂鸣器出现破音_五款蜂鸣器驱动电路原理图
- windows查询每个线程占用的内存_C#多线程
- mysql 共享锁_mysql有排他锁为什么还需要共享锁呢?
- c/c++读取txt文件中指定行的内容_和尧名大叔一起从0开始学Python编程-简单读写文件
- MySQL 8.0开始Group by不再排序
- 几款效率神器助你走上人生巅峰
- Hadoop 2.5.1集群安装配置
- 当众讲话第二章当众讲话的基本原则