📄 csdn_文档中心_关于包(package)应用规范的说明.htm
字号:
<TD><B> 关于包(Package)应用规范的说明</B> pepper_dog999(原作)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD width=500> 关于包(Package)应用规范的说明</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>
<P>一、 dataBase端开发介绍:<BR>package分为两个部分:1、package head,2、package
body。前者为包头的定义,后者为过程及方法的实体。只要包头定义中描述足够详细,可以隐藏包体的细节。举例如下:<BR>package
head pkg_topnet<BR>is<BR>--user define data
type—<BR>--用户自定义数据类型--</P>
<P> --user define procedure and
function—<BR> --用户自定义过程和函数—<BR> --the
procedure proc_password_validate is the process ofpassword
validate—<BR> --the param log_id is the pa_id
coloum—<BR> --the param log_pass is the pb_yhpwd
coloum—<BR> --the param member_name is the pb_name
coloum—<BR> --if the member_name is return value
“none”,it indicate that the—<BR> --login process has
been crash—<BR>
--proc_password_validate过程用于密码的验证—<BR>
--参数log_id为pa_id字段—<BR>
--参数log_pass为pb_yhpwd字段—<BR>
--参数member_name为pb_name字段—<BR>
--如果member_name的返回值为”none”,则说明验证过程出错--<BR> procedure
proc_password_validate(<BR> log_id in
number,<BR> log_pass in
varchar2,<BR> member_name out
varchar2<BR> );</P>
<P> --the procedure proc_password_change is the process
ofpassword change—<BR> --the param log_id is the pa_id
coloum—<BR> --the param org_pass is the user’s original
password—<BR> --the param new_pass is the user’s new
password—<BR> --the param status is the status of this
process—<BR> --if the status is return value 0,it
indicate that the—<BR> --change process has been
validate—<BR>--if the status is return value 1,it indicate that
the—<BR> --user’s original password make
misetake—<BR>
--proc_password_change过程用于密码的修改—<BR>
--参数log_id为pa_id字段—<BR>
--参数org_pass为用户原来的密码—<BR>
--参数new_pass为用户新的密码—<BR>
--参数status为该过程的状态返回值--<BR>
--如果status的返回值为0,则说明修改过程成功—<BR>
--如果status的返回值为1,则说明用户的原始密码有错--<BR> procedure
proc_password_change(<BR> log_id in
number,<BR> org_pass in
varchar2, <BR> new_pass in
varchar2,<BR> status out number<BR>
);<BR> <BR> end;</P>
<P>因此,我们只需要提供一个规范的包头信息就可以满足大家的开发需要,而包体的详细过程则可以隐藏,当有新的需要时,只需更新包,然后给大家重发一个包头的描述就可以了,在开发阶段中,可以先采用procedure,然后统一将所有的procedure打包,在app端的修改很小,只需要更新三行代码。<BR>二、
appServer端开发解释:<BR>1、 jdbc描述:<BR>package pepper_dog999.UseJdbc;</P>
<P>import java.sql.*;</P>
<P>public class JdbcCallPackage {</P>
<P> public static void main(String[] args)
{<BR> Connection conn;<BR>
String
driver="oracle.jdbc.driver.OracleDriver";<BR>
String <A
href='mailto:url="jdbc:oracle:thin:@192.168.128.41:1521:ORC2"'>url="jdbc:oracle:thin:@192.168.128.41:1521:ORC2"</A>;<BR>
try{<BR>
conn=JdbcConnDb.connDb(driver,url,"pepper_dog999","bad_boy2");<BR>
CallableStatement
cstmt=conn.prepareCall("{call
pkg_topnet.proc_password_validate(?,?,?)}");<BR>
cstmt.setInt(1,10001);<BR>
cstmt.setString(2,"pass1");<BR>
cstmt.registerOutParameter(3,Types.VARCHAR);<BR>
cstmt.executeQuery();<BR> String
pbName=cstmt.getString(3);<BR>
System.out.println("the output param is pbName,and its value
is:"+pbName);<BR> }catch(SQLException
ex){<BR> System.out.println("SQL
Exception:"+ex.getMessage());<BR> }<BR>
}<BR>}</P>
<P>class JdbcConnDb {</P>
<P> public static Connection connDb(String driver,String
url,String user,String pass){<BR> Connection
conn=null;<BR>
try{<BR>
Class.forName(driver);<BR>
}catch(java.lang.ClassNotFoundException
e){<BR> System.out.println("Class Not
Found Exception:"+e.getMessage());<BR>
}<BR> try{<BR>
conn=DriverManager.getConnection(url,user,pass);<BR>
}catch(SQLException ex){<BR>
System.out.println("SQL
Exception:"+ex.getMessage());<BR>
}<BR> return(conn);<BR> }<BR>}</P>
<P>其中类connDb类为自定义类,用来产生一个连接的对象实例。</P>
<P>2、 ODBC中ADO数据模型描述:(各语言根据自身特点调整)<BR>function
ConnectOra8(dsn_name,user,password)<BR> set
conn=server.CreateObject("ADODB.Connection")<BR> conn.Connectionstring="DSN="&dsn_name&";uid="&user&";pwd="&password&";"<BR> conn.Open<BR> conn=ConnectOra8("dsn_name","user","password")<BR>
end funcation</P>
<P> sub ODBCCallPackage()<BR> const
adOpenStatic=3<BR> const
adCmdText=&h0001<BR> const
adCmdStoredProcedure=&H0004<BR> const
adParamInput=&H0001<BR> const
adParamOutput=&H0002<BR> const
adVarChar=200<BR> const adInteger=3<BR>
const adDate=7<BR> SQLString="{call
pkg_topnet_package.proc_password_validate(?,?,?)}"<BR>
conn=connectOra8("conn_Ora","pepper_dog999","bad_boy2")<BR>
set comm=server.createObject("ADODB.Command")<BR> with
comm<BR>
.activeConnection=conn<BR>
.commandType=adCmdText<BR>
.commandText=SQLString<BR> end with<BR> set
pa_id=comm.CreateParameter(pa_id,adInteger,adParamInput,12)<BR> pa_id.value=10001<BR> comm.parameters.append
pa_id<BR> set
pb_yhpwd=comm.CreateParameter(pb_yhpwd,adVarChar,adParamInput,20)<BR> pb_yhpwd.value="pass1"<BR> comm.parameters.append
pb_yhpwd<BR> 'output<BR> set
pb_name=comm.CreateParameter(pp_name,adVarChar,adParamOutput,20)<BR> comm.parameters.append
pb_name<BR> comm.execute<BR> response.write
“the output param is member_name and it’s value
is”&pb_name<BR> end sub</P>
<P>三、
优越性描述:<BR>使用统一的包(package)管理可以将开发过程中无序的开发工作协调,而又不会对现有的代码造成太大的改动。其优点如下:<BR>1、
权限的管理:可以由专人管理包的更新,和包头描述的发放,由于隐藏了包体,可以使不太熟悉该开发需求的人很快的上手,因为前端开发的格式可以统一。<BR>2、
性能的改善:可以将核心的过程和性能要求较高的过程封装包体中,对性能提升大有好处。<BR>3、
代码的管理:由于包体和前端程序的分离,当需求改变时可以很快的修改。<BR></P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_关于包(Package)应用规范的说明.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你没有登陆,无法发表评论。 请先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=3451">登陆</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_关于包(Package)应用规范的说明.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -