前沿
转了一个新项目组,前台用的是谷歌的GWT,然后对其有一层封装。
我自己简单的总结下就是,
1.由于GWT这框架是将JAVA代码转换为JS和html代码,他会对自己支持的类进行转换,也会对java常用的类进行转换,但是像一些比较新的类库,Calendar就不行了,所以自己的写的类基本就别放到前台渲染那块。
2.作为一个金融(正常)的应用,和数据库打交道是肯定的了,转换后的JS和数据库打交道,我们就用到了SOAP(简单对象访问协议SimpleObjectAccessProtocol),大概是我们前台的js会发送一段数据到服务器,包括一个requestID和其他数据,然后这个requestID配置了一个xml文件,由这个xml文件定义的规则去解析这个请求的数据,然后和数据库交互,返回数据,因为这个请求是异步的,有回调函数。
3.吐槽下,这个项目每天要和澳大利亚那边开会,全英语啊,每天12点半吃饭,而且印度阿三写的代码,我们还要去review,写的实在太烂了,每天都要做release真是痛苦,去修正一个defect,会发现一些其他的问题,但是我会努力的,打怪升级。
今日分享
1.先说下动态SQL把,动态SQL听起来很高大上,其实就是 EXECUTE IMMEDIATE +变量SQL语句,就是可以在PL/SQL里面拼接你需要的SQL,我随便写个demo把。
DECLARE
CONDITION1 VARCHAR(20):=' field1 =''5''';
STATEMENT VARCHAR(100):='SELECT * FROM TABLE1 WHERE 1=1 AND ';
BEGIN
SELECT CONCAT(STATEMENT ,CONDITION1 ) INTO STATEMENT FROM DUAL;
--SELECT STATEMENT || CONDITION1 INTO STATEMENT FROM DUAL;
EXECUTE IMMEDIATE STATEMENT ;
END;
我电脑上没装ORACLE = =,不知道语法正确不,谁看到错了说下额。
动态SQL中如果要拼接变量进去,如果不是数值型的话,记得添加2个单引号,自己写好了最好测试下,这里我都是泪。
2.说下我今天用到的一个函数把,然后一个了解到的组合。
</pre><pre name="code" class="sql">SELECT DECODE(COLUMN1,'A','I AM A','I AM NOT A') FROM TABLE1;
SELECT DECODE(COLUMN1,'A','I AM A','B','I AM B','I AM NOT A AND B') FROM TABLE1;
有了这个就可以不用PLSQL去写if else了,不过现在局限于 判断条件只能是 =。 如果想实现类似like呢。
SELECT DECODE(INSTR(COLUMN,'A'),'0','NOT HAVE A','HAVE A') FROM TABLE1;
类似这样就好了
完结,我要去敲代理模式的代码了。