admin 管理员组文章数量: 887021
2024年1月17日发(作者:scrapy版本)
s … 日 x!… 目目 !… …… E……… …自 …… E 实用第一 智慧密集 … ……… …… …… … … … …… JsP J 誊 |臻曩 _ 曩 小明 摘 要:用JSP开发各种管理系统常常在JSP中调用Java.Bean的方法来实现.在此应用的是通过在 jsP中调用JavaBean,在JavaBean中调用存储过程来实现软件的开发。 关键词:JSP;JavaBean;Oracle存储过程;结合 业的大学生、社会在职计算机人员学习好掌握好Oracle数据 1 JDK及tomcat的安装和配置 1.1 JDK的安装和配置 采用较新的JDK版本即JDK1.6,JDKt.6官方下载地址: hvp..// ̄.jav ̄.net/download/jdk6/6u10/pmmoted/h32/binarie ̄s/jdk一 一库对以后就业、高薪是一个很好的敲门砖。采用的是Ora— clel0g,下载安装好后,点击“开始”、 “运行”,输入cmd 后,按“确定”。弹出MS—DOS窗口后,输入:sq ̄plus scott/ tiger,出现“SQL>”提示符后输人:SQL>SELECT FROM emp;看有没有记录,有就代表Oracle安装成功了。java程序 6ulO一-re2一.bin—b32一-windows—i586一-p一12sep_2008.exe,下载好 后可以按默认路径安装.在安装好之后就是要进行Jdk环境变 量的配置,可以安以下步骤进行:首先找到idk的bin目录, 要调用Oracle数据库还必须配置jdbc驱动包(classes12ja0, Oraclel0g安装好后,jdbc驱动包(elassesl2.jar)一般在..\jd— bdlib目录下,如Oracle10g的安装目录为E:\oracle\pmd-. ucfll0.2 0\db-.—例如默认路径安装为:C:LPmgram FileskJava\jdk1.6.o_18,将其 路径名复制.然后打开“我的电脑”的“属性”窗口。找到 “高级”,点击“环境变量”按钮.找到系统变量中的 l\jdb&lib,所以jdbc驱动包【'classesl2.jar)的配 置为双击前面所建的的变量CLASSPATH,增加变量值:E:kr-. “PATH”,双击“PATH”记录,弹出“编辑系统变量”窗口, 在变量值的最后加上分号和idk的bin目录,如:C:\Pmgram aele\produet\l0.2 -.0\db_l\jdbc、lib\classes12.jar。如果没配置好jd— bc驱动包就会出现java.1ang.ClassNotF0undException:oracle.jdbe. driver.OraeleDriver异常 FilesXJava\jdk1.6.0_18 ̄bin。然后新建变量CLASSPATH,变量值 为CAProgramFilesqavaXjdk1.6 ..0—18\jre ̄libkrt.jar。最后新建变量 2_2 Oraele存储过程的编写 首先建立一个包,在包中定义一个游标变量,作用是返回 记录集到Java程序中,具体代码如下: CREATE OR REPLACE PACKAGE QYRKCXPKG lS TYPE REFCURS0R IS REF CURSOR: END: JAVA HOME,变量值为C:\Pmgmm Files ̄Java\jdk1..6 . 0—18。 1.2 tomcat的安装和配置 所用的Web服务器为tomcat一5.0.28.下载的网址为:ht ̄p: //archive.apache.org/d ̄ist/tomcat/tomcat一5,archive/。下载完后,解 压jakarta—tomcat一5.0.28到目录C:\tomcat5.0即完成安装。安装 好后,对tomcat进行配置。找到TomcM的bin目录.例如默 | 如图1所示 REPLRCE PRCKRGE QYRKCXPKG I S REFCURSOR IS REF CURSOR: 认路径安装为:C:\tomcat5.O、bin,将其路径名复制,然后打开 “我的电脑”的“属性”窗El,找到“高级”.点击“环境变 量”按钮.找到系统变量中的“PATH”,双击“PAII-I”记录. 弹出“编辑系统变量”窗口,在变量值的最后加上分号和 Tomcat的bin目录,如:C:\tomcat5.0Xbin。点击“新建”,新建 一个系统变量。变量名为tomcat home,变量值为CAtom— 图1建立包GWRK(:IXPK ̄G:企业入库查询 cat5.0。最后按确定退出。 然后创建一个存储过程.主要功能是取出入库起止日期内 2 Oracle概述 2.1 Oracle的jdbc驱动包('classes12.jar)的配置 Oracle的关系数据库是世界第一个支持SQL语言的数据 库,功能强大,目前是用户首选的数据库,所以在校计算机专 企业名单及入库数,当然在具体编程的时候用到的SQL语句 要复杂得多,但原理还是相同的。语句如下: CREATE OR REPLAC巨PROCEDURE OYRKCX(RKQSRQ lN NUMBER RKZZRQ IN NUMBER. 鬣 与簟
■ Ⅲ 匝ⅡⅡ皿 Ⅱ卫 cursorret 0UT QYRKCXPKG.REFCURSOR) ( try IS BEGIN {Class.forName(sDBDriver); _OPEN cursorret FOR SELECT c.qy id,C.qymc.c.nsrs— ) bh,b.zspm.sum(a.kps) FROM zsmx a,bm_—catch(java.1ang.CIassNotFoundExcepti0n e) zspm b,dj—swdjnb C f System.err.println(”sqlO:“+e.getMessageO) WHERE a.hzlxhrq>=RKQSRQ and a.hzlxhrq<=RKZ- ZRQ and a.zspmbm=b.zspmbm and a,qynm=c.qynm GROUP BY C_qYid.C.qymc,C.nsrsbh,b.zspm; ) } EXCEPT10N WHEN 0THERS THEN RAISEAPPLICAlTlON——ERROR(一20001, 错误号: Il //定义方法可以接收三个参数,分别是存储过程,入库起始 ∥日期,人库终止日期。 public ResultSet executeQuery(String sql,String rkqsrq String rkzzrq){ try{ SQLCODEII .错误信息: IISQLERRM); END; | 如图2所示 CQL)CREATE响REPLACE PROCEbURE QVRKCX(RKqs呻IH HUHDER. 2 RKZZRQ IH哪瞳ER. 3 Cu ̄sor ret OUT QYHJ ̄PKG.REFgLmSDB) _” con=DriverManager.getConnection(url,user,password); ,/调用存储过程 stmt=con.prepareCal1(sqI): ∥可以理解为第二个输出参数注册游标类型 S BEGIN 6 7 0PEH cursopret FOR SELECT c.g—_i4.c.删t.c.nsrsbh.b.zspn。sum(a.kps) ..FR洲ZS iN・,bmzspm b.dJ s ̄Jnb c stmt.registerOutParameter《3.oracle.jdbc.Oracle- Types.CURSOR); 6 ・VHERE a.hzlxhrq)wRKqs呻and j.hzTxhrq(=RKZZ明and a.zspmi ̄b.zspmbm and j GROUP钟c.删td.c.qIl .c.nsrsbh-h.zsp; 一qllAIPI'C・叫nl ∥输入参数 String vrkqsrq=rkqsrq; 11 雠H OTHERS THEH E帕: 帅 sEJ ’。 ’。 -E 妯 卜 ‘。"・ 错误号:。II 。 。。DEII’・错误信息:’II。q H】 1I/ String vrkzzrq=rkzzrq; _程己魄. stmt.setString(1.v_rkqsrq); 图2 建立存储过程QYRKC×:企业入库查询 strut.setString(2,vrkzzrq); _stmt.e×ecuteUpdate(): 3逻辑层Java程序 下面是完整的Java程序代码,文件名为sq1.java,通过 javac sq1.java编译或通过JCreator进行编译,如图3所示。 ) 脓的结果集: Rs=((OracleCallableStatement)stmt).getCursor(3); catch(SQLException ex){ System.err.println("sq1.executeQuery:“+ex.getMes— sage(】): ) return rs; ) 图3编译sq1.java 代码如下: package oracle; public void closeStmtO( try{ stmt.close(); ) catch(SQLException ejf import java.sq1. : //导人oracle的jdbc驱动程序包 import oracle.jdbc. : public class sql{ String sDBDriver:”oraclejdbc.driver.OracleDriver“: .e.printStackTraceO; ) ) String url=‘'jdbc:oracle:thin:@144.6O.48.93:1521:orc J” String user:“scott”: String password=“tiger”: Connection con=null; public void closeConnO{ try{ CO0.close(); ) catch(SQLException eJ( e.printStackTraceO; } CallableStatement stmt=null: ResultSet rs=null; public sql() iaI -II藿a技O巧lO与.a簟l护 <+! _
………… 一……… …一…… … … ……“…… 实用第一/智慧密集 ………………一. ……… ………… ………………… out.println(“<font color=red size=5><b>“) out.println( 请您写入正确的SQL语句!“): 4 JSP程序的编写及运行 4.1 JSP程序 Jsp程序的作用是显示企业入库清册,命名为sq1.jsp。具 out.println(e:getMessageO); out.println(”</b></font> ): ) %> 体的代码如下: <%@pag e contentType=”text/html;charset= Gb2312”%> <%@page import=”java.sq1. %> <%@page import= orac!e.jdbc. “%> <html> <head> <title>JSP、JavaBean.Oracle存储过程三者结合的研 究</title> </head> <jsp:useBean id=”qyrkcx”scope=“page, class=”oracle. sqlH/> <body bgc0l0r=LjghtBlue> <center> <TABLE frame=box width=850 celtpadding=O cellspac— ing=O style= BORDER—COLLAPSE:CO}lapse;font:1 2px; TABLE-LAY0UT:fixed:“bordercOIor=999999> <tr align=center> <td>地税编 ̄5</td> <td>企业名称</td> <td>纳税人识别号</td> <td>征收品目</td> <td>开票数</td> </tr> <% try{ //调用JavaBean中的方法executeOuery,并传递参数 ResultSet rs:qyrkcx.executeQuery( call QYRKCX (7,?,  ̄"201 00301 , 201 00301 ); while(rs.next()) { out.print!n(“<tr align=center>”): out.println( <td> +rs.getString(1)+ <,cd>”): out.println(”<td align=left> +rs.getString(2)+”</td>”) out.printIn( <td aIign=left> +rs.getString(3)+ </td> ): out.println( <td align=left>“+rs.getString(4)+¨</td> ): 0ut.println{ <td align=right> +rs.getSt ring(5)+ <,td> ): out.println( </tr>“) ) rs.close(); ) catch(Exception e) { 器 与壤 </table> </center> </body> </htm!> 4.2运行JSP程序 要使该Jsp程序运行,还需进行以下几步工作.首先把编 译后产生的JavaBean文件夹oracle拷贝到安装好后的Tomcat 的..\webapps\ROOT ̄WEB—INl ̄classes\文件夹下。把 q1.jsp文 件拷贝到安装好后的Tomcat的..\webapps\ROOT ̄文件夹下。 再打开tomcat5.0的bin目录,双击“sta ̄up.bat”MS—DOS批 处理文件,启动tomcat服务器。打开]nternet Explorer浏览器, 输入:http://localhost:8080/sq1.jsp,按回车键,出现窗口如图4 所示 禹 诗 图4 JSP程序运行后的界面 4.3三者调用机制 JSP、JavaBean、Oracle存储过程三者是如何结合的呢?首 先JSP程序中通过ResultSet rs=qyrkcx.executeQuery call QYRKCX(?,?,?)”,”20100301”,”20100301”)代码获得返回 的结果集,JavaBean中通过代码sturt=con.prepareCM1(sq1)调 用存储过程.这样就实现了三者的结合。 5 结语 介绍了JSP、JavaBean、Oracle存储过程三者结合的实现, 对于一些刚学习或想学习JSP、Java和Oracle的程序员来说, 可能会带来点帮助。希望通过学习能给JSP、Java的程序员或 JSP、Java的爱好者起到抛砖引玉的作用。 (收稿日期:2010—09—10)
版权声明:本文标题:JSP、JavaBean、Oracle存储过程三者结合的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705430558h484473.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论