JSF+A4J+Spring调用ORACLE存贮过程的拙作
近一周写了一个简单的工具,本工具是通过Spring调用ORACLE的存贮过程,然后返回一个结果集合.用到的技术有JSF\AJAX4JSF\SPRING\facelet和进度条的控制\代码着色(codepress)等.其实现页面可以参考如下:
部分代码如下:
faces-config.xml
- xml version="1.0" encoding="UTF-8"?>
- >
- <faces-config>
- <application>
- <variable-resolver>
- org.springframework.web.jsf.DelegatingVariableResolver
- variable-resolver>
- <view-handler>com.sun.facelets.FaceletViewHandlerview-handler>
- <message-bundle>resources.messagesmessage-bundle>
- <locale-config>
- <default-locale>zhdefault-locale>
- <supported-locale>ensupported-locale>
- locale-config>
- application>
- <managed-bean>
- <managed-bean-name>tracePnrBeanmanaged-bean-name>
- <managed-bean-class>
- com.travelsky.analyze.action.TracePnrBean
- managed-bean-class>
- <managed-bean-scope>requestmanaged-bean-scope>
- managed-bean>
- <managed-bean>
- <managed-bean-name>tracePnrFltBeanmanaged-bean-name>
- <managed-bean-class>
- com.travelsky.analyze.action.TracePnrFltBean
- managed-bean-class>
- <managed-bean-scope>requestmanaged-bean-scope>
- managed-bean>
- <navigation-rule>
- <from-view-id>/login.xhtmlfrom-view-id>
- <navigation-case>
- <from-outcome>Okfrom-outcome>
- <to-view-id>/comein/AnalyzeMain.xhtmlto-view-id>
- <redirect>redirect>
- navigation-case>
- <navigation-case>
- <from-outcome>Ok2from-outcome>
- <to-view-id>/comein/AnalyzeTools.xhtmlto-view-id>
- navigation-case>
- navigation-rule>
- <navigation-rule>
- <from-view-id>/comein/AnalyzeMain.xhtmlfrom-view-id>
- <navigation-case>
- <from-outcome>Okfrom-outcome>
- <to-view-id>/comein/AnalyzeMain.xhtmlto-view-id>
- navigation-case>
- navigation-rule>
- <navigation-rule>
- <from-view-id>/comein/AnalyzeTools.xhtmlfrom-view-id>
- <navigation-case>
- <from-outcome>Okfrom-outcome>
- <to-view-id>/comein/AnalyzeTools.xhtmlto-view-id>
- navigation-case>
- navigation-rule>
- faces-config>
TracePnrBean.java
- package com.travelsky.analyze.action;
- import java.io.BufferedWriter;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.faces.context.FacesContext;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import com.travelsky.analyze.serviceimpl.TrancePnrManagerImpl;
- public class TracePnrBean {
- private String PnrNo;
- private String TextPath;
- private String InputPnrNo = "请输入PNR或REF号...";
- public String getInputPnrNo() {
- return InputPnrNo;
- }
- public void setInputPnrNo(String inputPnrNo) {
- InputPnrNo = inputPnrNo;
- }
- public String getPnrNo() {
- return RunTracePnr();
- }
- public void setPnrNo(String pnrNo) {
- PnrNo = RunTracePnr();
- }
- public String getTextPath() {
- return this.OutText(RunTracePnr());
- }
- public void setTextPath(String textPath) {
- TextPath = textPath;
- }
- public String RunTracePnr() {
- String TracePnrStr = "\n";
- DriverManagerDataSource ds = new DriverManagerDataSource();
- ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
- ds.setUrl("jdbc:oracle:thin:@10.6.168.134:1521:dss9i");
- ds.setUsername("dss_pdata");
- ds.setPassword("dss_pdata");
- TrancePnrManagerImpl sp = new TrancePnrManagerImpl(ds, "tracepnr");
- sp.setParameter("pnr_nbr_in", java.sql.Types.VARCHAR);
- sp.setOutParameter("print_pnr", oracle.jdbc.OracleTypes.VARCHAR);
- sp.compile();
- TrancePnrManagerImpl sp2 = new TrancePnrManagerImpl(ds, "reftracepnr");
- sp2.setParameter("pnr_ref_in", java.sql.Types.VARCHAR);
- sp2.setOutParameter("print_pnr", oracle.jdbc.OracleTypes.VARCHAR);
- sp2.setOutParameter("print_pnr_sfx1", oracle.jdbc.OracleTypes.VARCHAR);
- sp2.compile();
- /**
- * 对输入的数据进行一次处理
- */
- StringUtils t1 = new StringUtils();
- String InputPnrNoList = this.getInputPnrNo();
- InputPnrNoList = t1.deleteWhitespace(InputPnrNoList);
- String[] SInputPnrNo = t1.split(InputPnrNoList, ",");
- for (int j = 0; j < SInputPnrNo.length; j++) {
- String PnrRef = SInputPnrNo[j];
- // 传入输入参数值
- if (PnrRef.length() == 9) {
- Map in = new HashMap(1);
- in.put("pnr_nbr_in", PnrRef);
- sp.SetInParam(in);
- // 执行存储过程
- Map m = sp.execute();
- Iterator i = m.keySet().iterator();
- while (i.hasNext()) {
- String key = i.next().toString();
- TracePnrStr += m.get(key);
- }
- }
- if (PnrRef.length() == 5) {
- Map in = new HashMap(1);
- in.put("pnr_ref_in", PnrRef);
- sp2.SetInParam(in);
- // 执行存储过程
- Map m = sp2.execute();
- // Map m = sp.set.get(0);// ReultSet的第一条记录
- // set定义为SpringStoredProcedure的属性用于接收回调时的数据
- // 如果有多个输出参数,应该在每个输出参数的回调方法中生成该输出
- // 参数对应的ArrayList,然后加到一个成员变量的数据结构中。
- Iterator i = m.keySet().iterator();
- while (i.hasNext()) {
- String key = i.next().toString();
- TracePnrStr += m.get(key);
- }
- }
- TracePnrStr = t1.replace(TracePnrStr, "<newline>"</newline>, "\n");
- TracePnrStr = TracePnrStr + "\n \n";// 最后一个加换行
- }
- //this.OutText(TracePnrStr);
- return TracePnrStr;
- }
- public String Finish(){
- return "Ok";
- }
- public String OutText(String TracePnrStr) {
- SimpleDateFormat myFmt=new SimpleDateFormat("yyyyMMddHHmmss");
- String PathText = myFmt.format(new Date());
- try {
- BufferedWriter out = new BufferedWriter(new FileWriter(
- "D:\\tomcat5523\\webapps\\analyze\\doc\\pnr"+PathText+".txt", true));// 主要就是这个true
- //out.newLine();// 如果不另起一行的话就注释掉
- out.write(TracePnrStr);
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return "pnr"+PathText+".txt";
- }
- }
JSF+A4J+Spring调用ORACLE存贮过程的拙作相关推荐
- C# + MySql 存贮过程开发示例
MySql 发展至今,已经不是当初那个只依靠免费和速度取胜的开源数据库服务器了,它提供的一系列 GUI 工具,以及加入商业数据库的一些特性,依然免费并且开源,让我们实在无法拒绝它的魅力. 很多人在谈及 ...
- spring+springMvc+mybatis 调用oracle 存储过程
最近在项目中遇到在mybatis中调用oracle存储过程的问题,网上各种查询,最终解决了问题,在我们项目中我只需要oracle 的存储过程返回一个字符串用来存入数据库作为表数据的主键, 接下来整理代 ...
- java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?
求助,JAVA Spring 连接池 调用 Oracle 存储过程的问题?在Spring中配置了c3P0的连接池,在调用Oracle的存储过程时,报错[code]java.lang.ClassCast ...
- java调用oracle过程,JAVA调用ORACLE存储过程报错
当前位置:我的异常网» Java Web开发 » JAVA调用ORACLE存储过程报错 JAVA调用ORACLE存储过程报错 www.myexceptions.net 网友分享于:2015-07-1 ...
- Spring 容器的启动过程
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来源:http://r6f.cn/b47K 一. 前言 ...
- C#调用Oracle存储过程分页
直接调用Oracle中的存储过程完成对表的分页,对代码封闭程度高,执行高效.以下为C#分页类代码,包括Oracle数据库 端存储过程PLSQL代码. // 程序调用示例: // int tota ...
- Spring装配Bean的过程
首先说一个概念:"懒加载" 懒加载:就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到容器中. spr ...
- Spring源码系列(十二)Spring创建Bean的过程(二)
1.写在前面 上篇博客主要Spring在创建Bean的时候,第一次调用的Bean的后置处理器的过程,同时笔者也打算将整个Spring创建的Bean的过程,通过这个系列,将Bean的创建过程给讲清楚,废 ...
- Spring Bean生命周期过程
Spring Bean生命周期过程 Spring Bean生命周期指的是Bean加载Spring容器的过程,单例的Bean与多例的Bean加载过程是不一样的.这里指的是单例Bean的加载过程. 图:S ...
最新文章
- linux如何关闭防火墙
- Lidar-RCNN:基于稀疏点云的3D目标检测网络(CVPR2021)
- 禁用/启用按钮和链接的最简单方法是什么(jQuery + Bootstrap)
- 如何解决大量样本标注问题
- 利用局域网测试仪进行网络性能测试
- P4396 [AHOI2013]作业
- 如何以10倍速加速Apache Xalan的XPath处理器
- python3 ftp.mlsd,python3中的ftp目录
- 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 - Oracle 基础和管理_files...
- C++ undefined reference to `__imp_WSACleanup‘解决方案
- python基础到实践教程_Python从入门到实践案例教程(21世纪高等学校计算机教育实用规划教材)...
- jmeter之线程组间变量的传递二
- 从 0 开始机器学习 - 机器学习系统的设计与误差分析
- Linux的java配置及tomcat的启动
- 新手学习Linux之grep
- 参数化CFAR的FPGA实现
- 批量下载全国县级行政区划geojson格式数据,将下载的geojson数据批量转为shapefile格式,在arcgis中可视化
- 图像处理(十一)高斯差分算法(边缘检测)
- 【开源许可协议】常见开源许可协议的核心内容(思维导图版本)
- 转发和重定向的区别(forward和redirect的区别)
热门文章
- FANUC机器人开平方
- Java实现腾讯云COS高级(大文件)上传,不考虑分块
- 文学专业发语言学c刊,投c刊一般需要多少时间才回复
- (三)inkscape基础 裁剪图片
- STM32H750VBT6驱动程控增益放大模块PGA113——基于CubeMX的Hal库
- 5G真的有那么好吗?4G+5G多网聚合才是优秀执行方案
- JVM内存模型和性能调优:JVM内存分配与回收:Minor GC后存活的对象Survivor区放不下- 第26篇
- 菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
- 点云学习【1.2】法向量计算
- 诺基亚c6-01支持java吗,简约但很不简单 诺基亚C6-01到站评测