02 2013 档案

摘要:状态模式的结构 用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式的示意性类图如下所示: 状态模式所涉及到的角色有: ● 环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。 ● 抽象状态(State)角色:定义一个接口,用以封装环境(Context)对象的一个特定的状态所对应的行为。 ● 具体状态(ConcreteState)角色:每一个具体状态类都... 阅读全文
posted @ 2013-02-28 16:44 lifeng_study 阅读(286) 评论(0) 推荐(0) 编辑
摘要:1,概念 将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。 在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类。Command模式可应用于 a)整个调用过程比较繁杂,或者存在多处这种调用。这时,使用Command类对该调用加以封装,便于功能的再利用。 b)调用前后需要对调用参数进行某些处理。 c)调.. 阅读全文
posted @ 2013-02-28 16:02 lifeng_study 阅读(144) 评论(0) 推荐(0) 编辑
摘要:observer模式,当被观察者发生变化时,通知观察者,然后观察者也跟着变化实例:热水器,显示器,报警器热水器相对于显示器就是被观察者,显示器相对于热水器就是观察者,但是相对于报警器就是被观察者,报警器相对于显示器就是观察者java中被观察者继承Observable类,观察者继承Observer类1:热水器实现类package pattern.observer;import java.util.Observable;/*** 热水器:被观察者,* 显示器:相对热水器是观察着,相对于报警器是被观察者,* 报警器:观察者* @author lifeng**/public class Heater 阅读全文
posted @ 2013-02-28 11:09 lifeng_study 阅读(227) 评论(0) 推荐(0) 编辑
摘要:select tn, channalName, decode(sucRate, null, '0%', round(sucRate * 100, 2) || '%') sucRate, pointsTotal, userTotal, recommendTotal, recommendSuc, validPoints, vaildUser, activePoints, warnPoints, onlinePoints, RANK() OVER(order by nvl(recommendTotal, 0) desc) as recommendTotalnum, R 阅读全文
posted @ 2013-02-20 16:44 lifeng_study 阅读(214) 评论(0) 推荐(0) 编辑
摘要:select * from (select rownum tn, organise_id organiseId, organise_name, nvl(recommendTotal, 0) recommendTotal, nvl(recommendSuc, 0) recommendSuc, nvl(pointsTotal, 0) pointsTotal, decode(nvl(recommendTotal, 0), 0, 0, recommendSuc / recommendTotal) sucRate, decode(nvl(validPoints, 0), 0, 0, round(reco 阅读全文
posted @ 2013-02-20 16:43 lifeng_study 阅读(218) 评论(0) 推荐(0) 编辑
摘要:Select * from (select Z.*, rownum RN from (select organise_name, open_suc_total, rank() over(order by open_suc_total desc) recSuccessCountRank, recommend_total, rank() over(order by recommend_total desc) recTotalCountRank, to_char(round(open_suc_total / recommend_total * 100, 4), 'fm9999990.00&# 阅读全文
posted @ 2013-02-20 16:42 lifeng_study 阅读(279) 评论(0) 推荐(0) 编辑
摘要:select * from (select rownum RN, B.* from (Select Distinct T.REGION_NAME, T.AREA_NAME, T.CENTER_NAME, T.GRID_NAME, T.POINT_NAME, T.POINT_ID, B.product_code, B.Organise_Id, B.TO_MOBILE, RECOMMEND_DATETIME, reommendRecord, S.LOGIN_NAME, P.PRO_START_TIME, P.PRO_END_TIME From tb_product_info P, Sys_user 阅读全文
posted @ 2013-02-20 16:41 lifeng_study 阅读(182) 评论(0) 推荐(0) 编辑
摘要:select tb_total.* from (select pros.*, rownum RN from (select p.product_code, p.product_name, p.product_type_name, nvl(rd.recommend_total, 0) recommend_total, nvl(rd.open_suc_total, 0) open_suc_total, to_char(nvl(rd.recommend_rat, 0), 'fm9999990.00') recommend_rat, ration(nvl(rd.recommend_to 阅读全文
posted @ 2013-02-20 16:40 lifeng_study 阅读(367) 评论(0) 推荐(0) 编辑
摘要:第一步:客户端把语句发给服务器端执行。 当我们在客户端执行select语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句。也就是说,Oracle客户端是不会 做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端。虽然在客户端也有一个数据库进程,但是,这个进程的作用跟服务器上的进程作 用事不相同的。服务器上的数据库进程才会对SQL语句进行相关的处理。不过,有个问题需要说明,就是客户端的进程跟服务器的进程是一一对应的。也就是说, 在客户端连接上服务器后,在客户端与服务器端都会形成一个进程,客户端上的我们叫做客户端进程;而服务器上的我们叫做服务器进程.. 阅读全文
posted @ 2013-02-20 16:39 lifeng_study 阅读(313) 评论(0) 推荐(0) 编辑
摘要:oracle的管道也可以返回集合类型,跟游标类似CREATE TYPE my_type AS OBJECT ( field1 NUMBER, field2 VARCHAR2 (50) ); CREATE TYPE my_typelist AS TABLE OF my_type; CREATE OR REPLACE FUNCTION pipelineme RETURN my_typelist PIPELINED IS --定义自己的类型-- v_mytype my_type;BEGIN FOR v_count IN 1 .. 20 LOOP v_mytype := my_type(v_coun. 阅读全文
posted @ 2013-02-20 16:38 lifeng_study 阅读(1046) 评论(0) 推荐(0) 编辑
摘要:declare i_bank_id varchar2(10) := '15'; i_bank_name varchar2(100) := 'testyy'; i_flag varchar2(1) := '0'; i_oper_time date := sysdate;begin execute immediate 'insert into sys_bank values(:p1,:p2,:p3,:p4)' using i_bank_id, i_bank_name, i_flag, i_oper_time; commit;end; 阅读全文
posted @ 2013-02-20 16:37 lifeng_study 阅读(3158) 评论(0) 推荐(0) 编辑
摘要:--游标中的while循环---declare cursor mycursor is select * from sys_bank; myrecord sys_bank%rowtype;begin --打开游标-- open mycursor; --捕捉游标-- fetch mycursor into myrecord; --循环之前一定要fetch一把 while mycursor%found loop dbms_output.put_line(myrecord.bank_id || ' ' || myrecord.bank_name || ' ' || my 阅读全文
posted @ 2013-02-20 16:36 lifeng_study 阅读(362) 评论(0) 推荐(0) 编辑
摘要:CREATE OR REPLACE FUNCTION f_lf_find_organise( organise_id in varchar2, column_name in varchar2, level_in in number) /************************************************************************ 函数名称:f_lf_find_organise 输入参数:organise_id 组织机构ID column_name 想要查询返回出的列,如果为空默认返回的是organise_name这一列 level_in 想要查 阅读全文
posted @ 2013-02-20 16:35 lifeng_study 阅读(149) 评论(0) 推荐(0) 编辑
摘要:--创建返回类型CREATE OR REPLACE TYPE "HKF_CITY_TYPE" AS OBJECT( personType varchar2(50), city1 number, city2 number, city3 number, city4 number, city5 number, city6 number, city7 number, city8 number, city9 number, city10 number, city11 number, city12 number, city13 number, city14 number, city15 阅读全文
posted @ 2013-02-20 16:34 lifeng_study 阅读(507) 评论(0) 推荐(0) 编辑
摘要:create or replace procedure COMMI_BANK_VALIDATION_PROC(p_month IN varchar2, p_operator IN varchar2, p_state OUT char)/************************************************************************ 过程名称:COMMI_BANK_VALIDATION_PROC 输入参数: p_month:验证月份,格式:201112 p_operator:操作人ID 输出参数:p_state(0:未同步数据,无法验证,1:没有验 阅读全文
posted @ 2013-02-20 16:31 lifeng_study 阅读(344) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示