plsql逐行累加
plsql逐行累加 Select eba002,buydate,2 buynum,outnum,nvl(Sum(buynum) over (partition by eba002 order by buydate),0)sumbuy,nvl(Sum(outnum)over (partition by eba002 order by buydate),0) sunout3 From zhugyt1[@more@]plsql逐行累加 EBA002 BUYDATE BUYNUM OUTNUM---------- ---------- ---------- -----------------91001 2008-1-1 200 91001 2008-1-2 300 5091001 2008-1-3 10091002 2008-1-1 100 91002 2008-1-2 20 91002 2008-1-3 50需要依据eba002计算出总的购入数与销出数,结果如下:EBA002 BUYDATE BUYNUM OUTNUM SUMBUY S
sql优化
sql优化 sql类似:select col1,col2,...colnfrom v_view1where col1='...'and col...其中v_view1又是类似于select v1col1,v1col2,...v1colnfrom v_view2where ...而v_view2类似于select v2col1,v2col2,...,v2colnfrom table1where v2col1!=...and not ...这样的sql我搞了半天,对不等于,对not这种都不好优化.而sql的执行计划,竟然对一个数据量比较大的表进行了6次全表扫描.而这个表每天数据都在疯狂的增长.在plsql/devloper下执行一次要花时10秒左右.是不是优化没法进行了?从理论上来说,sql的优化就是尽量减少数据库的读与写.而这个sql有6次
rmi、防火墙与网闸
rmi、防火墙与网闸[@more@]要点: 1 rmi服务原理。 首先由rmi服务器注册,创建serversocket. 其次由rmi客户机lookup,返回对象stub. 最后由rmi客户机调用对象方法。由于只是得到服务的stub,实际运行是由服务器完成的,但看似在客户端完成。 2 如果有防火墙,则必须固定rmi引擎端口与服务端口。 引擎端口是用来客户机查询的,服务端口是真正用来与客户机通讯的。 只有固定了端口,防火墙与网闸才能有针对性的开放端口。 在此要注意,创建固定端口sorcket与设定SocketFactory必须在绑定查询端口前完成。 如果不固定端口,有可能报异常如: Co
项目与产品
经常听到做产品与做项目的区别,做项目是与用户需求紧密联系在一起的,而做产品对每一个能提升的地方,都会去考虑。这样说来,我们在做项目的时候,即要能把握用户需求,又要有做产品的决心,努力提升用户体验,才能把项目做好,提高用户满意度。[@more@]
自定义规范
用java开发一段时间以后,再回头去看自己团队写得那些代码:自已写的,同事写的,老觉得,为什么就这么难看呢?1 格式不统一。建议用工具自带的功能格式化源码。2 sql语句不规范。用sql写得查询一句,应一律要求用绑定变量方式,虽然在调试的时候,稍微有点不如意,但也有解决的方法。用绑定变量的方式对象可以解决sql依赖注入问题。另外对于一个大系统而言,用变量绑定方式,对于数据库服务器而言,是一种强有力的优化,不信,你可以查一下你的sqlarea.3 formbean的不规范。建议formbean中的field与表结构中的column_name对应起来。基类中
jsf与jsp
最近有看jsf,对用netbeans开发jsf这一块真是一个字了得:爽! jsf是对jsp的重大改进,但目前没有流行起来,实在感觉有点怪怪的! 也许是sun公司的推销策略不好,也许大部分公司都在struts上面投入太多的人力 物力,不愿意一下子迁移到jsf的平台上去.用惯了struts觉得struts开发挺顺手的, 效率也挺高的,这也是人之常情! 但面对又一次傻瓜似的环境,又一个vb似的平台,对于主要面向业务系统而言的开发 又有什么理由去拒绝呢? 我相信,jsf终会是java web框架的主流![@more@]近日再看前些日子,写得这篇文章,觉得多么的轻率。其实现在的开
java反射技术的应用
如何用java反射技术将sql操作与面向对象编程关联起来请看一例public class SqlUtil extends BaseApplogic { public List excuteQuery(String sql, Object[] paras, Object voo) throws AppException { DBPersistenceManager dbpm = this.getFnmsDBPM(); List list=new ArrayList(); try { DataSet ds = (DataSet) dbpm.executeQuery(sql, paras); DataSetMetaData dsmd = ds.getDataSetMetaData(); Field[] fd = voo.getClass().getDecla
使用Annotation简化开化
核心:jdk5的Annotation。思想:在接口上加上sql查询注解,在业务逻辑上只简单传入接口名。(部分内容摘自http://www.blogjava.net/nake/archive/2006/05/11/45736.aspx)[@more@] 1、pojo:pubic class Employee {private int employeeId;private String firstName;private String lastName;public int getEmployeeId() {return employeeId;}public setEmployeeId(int employeeId) {this.employeeId = employeeId;}public String getFirstName() {return firstName;}public setFirstName(String firstName) {this.firstName = firstName;
用java调用oracle存储过程
今天碰到一个问题,用java调用oracle的一个存储过程,调用报异常,修改(故意写错),调用,再修改(改正确),调用 。居然好使了!注:报异常时将各参数放到oracle中调试存储过程,没有问题!重启服务器,又报同样错误!晕死。[@more@]怀疑环境问题,将tomcat环境改为weblogic,将正确调用时好的class发布到weblogic,重启,同样报错!没招了。在oracle用命令重新编译alter package 包名 compile;alter package 包名 compile body;再调用,还是不好使。将包删掉,再创建包!再调用,还是不好使!天将降大任于斯人也,必先苦其心志!想不到好的办法