设为首页 收藏本站
查看: 469|回复: 0

[经验分享] JSF+A4J+Spring调用ORACLE存贮过程的拙作

[复制链接]
YunVN网友  发表于 2016-8-14 07:29:56 |阅读模式
      近一周写了一个简单的工具,本工具是通过Spring调用ORACLE的存贮过程,然后返回一个结果集合.用到的技术有JSF\AJAX4JSF\SPRING\facelet和进度条的控制\代码着色(codepress)等.其实现页面可以参考如下:
DSC0000.jpg
DSC0001.jpg
         部分代码如下:
    faces-config.xml
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.FaceletViewHandler<!---->view-handler>  
  •         <message-bundle>resources.messages<!---->message-bundle>  
  •         <locale-config>  
  •             <default-locale>zh<!---->default-locale>  
  •             <supported-locale>en<!---->supported-locale>  
  •         <!---->locale-config>  
  •     <!---->application>  
  •     <managed-bean>  
  •         <managed-bean-name>tracePnrBean<!---->managed-bean-name>  
  •         <managed-bean-class>  
  •             com.travelsky.analyze.action.TracePnrBean  
  •         <!---->managed-bean-class>  
  •         <managed-bean-scope>request<!---->managed-bean-scope>  
  •     <!---->managed-bean>  
  •     <managed-bean>  
  •         <managed-bean-name>tracePnrFltBean<!---->managed-bean-name>  
  •         <managed-bean-class>  
  •             com.travelsky.analyze.action.TracePnrFltBean  
  •         <!---->managed-bean-class>  
  •         <managed-bean-scope>request<!---->managed-bean-scope>  
  •     <!---->managed-bean>  
  •     <navigation-rule>  
  •         <from-view-id>/login.xhtml<!---->from-view-id>  
  •         <navigation-case>  
  •             <from-outcome>Ok<!---->from-outcome>  
  •             <to-view-id>/comein/AnalyzeMain.xhtml<!---->to-view-id>  
  •             <redirect><!---->redirect>  
  •         <!---->navigation-case>  
  •         <navigation-case>  
  •             <from-outcome>Ok2<!---->from-outcome>  
  •             <to-view-id>/comein/AnalyzeTools.xhtml<!---->to-view-id>  
  •         <!---->navigation-case>  
  •     <!---->navigation-rule>  
  •     <navigation-rule>  
  •         <from-view-id>/comein/AnalyzeMain.xhtml<!---->from-view-id>  
  •         <navigation-case>  
  •             <from-outcome>Ok<!---->from-outcome>  
  •             <to-view-id>/comein/AnalyzeMain.xhtml<!---->to-view-id>  
  •         <!---->navigation-case>  
  •     <!---->navigation-rule>  
  •     <navigation-rule>  
  •         <from-view-id>/comein/AnalyzeTools.xhtml<!---->from-view-id>  
  •         <navigation-case>  
  •             <from-outcome>Ok<!---->from-outcome>  
  •             <to-view-id>/comein/AnalyzeTools.xhtml<!---->to-view-id>  
  •         <!---->navigation-case>  
  •     <!---->navigation-rule>  
  • <!---->faces-config>  

TracePnrBean.java
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";  
  •     }  
  •   
  •   
  •   
  • }  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257545-1-1.html 上篇帖子: Oracle触发器在MIS开发中的应用(参考) 下篇帖子: Oracle PL/SQL语言操作和控制语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表