Java Web 项目优化

个人总结的Java Web 的注意事项
1、禁止在循环中,出现操作数据库的操作。 原因是:操作数据库打开和关闭耗费时间内存
      例如:  尽量避免不要在程序中出现如下这样操作
               for(Object o:entitys){
                  save(o);
                 update(o);
delete(o);
// 
          }
2、在程序出现的HQL或者SQL语句,尽可能把先能过滤数据多的条件放在第一位
       
3、在设计数据初期时,使用频繁的数据尽量做冗余字段。避免查询时还要连接表,耗费数据查询的时间。
      比如:人员和部门的关系 ;一个人有多个部门,一个部门有多个人,并且每个人都有默认部门          

4、在Java程序中HQL/SQL 中,尽量不要在 Where 条中调用系统函数或者Select 中调用系统函数。
   如下情况:
    
<strong>  StringBuilder sbud = new StringBuilder("select distinct tps.project_id  id  from t_project_stage tps");
           	    sbud.append(" inner join t_stage ts on ts.id = tps.stage_id  where  ");
           	    sbud.append("  tps.last_modified is not null and tps.last_modified -1<to_date('%2$s', 'yyyy-MM-dd')");
//           	    sbud.append(" and tps.last_modified <  to_date('%3$s', 'yyyy-MM-dd')+1 and tps.overdue=0  group by tps.project_id having MAX(ts.order_no)=%1$s) tt2 on tt.id =tt2.id ");
           	    sbud.append(" and to_date('%3$s', 'yyyy-MM-dd')  < <span style="color:#ff0000;">ADD_MONTHS</span>(tps.last_modified, 2) +1 and tps.overdue=0  and ts.order_no=%1$s) tt2 on tt.id =tt2.id ");
           	    builder.append(String.format(sbud.toString(),witchStage,firstDay,firstDay));</strong>


如果数据量大的话,建议做冗余字段。
5、如果在程序中多个地方的使用HQL查询或者本地SQL查询多张表,可以使用SQL的存储过程,SQL的视图,统一的接口,增加代码的重用性。备注:可为视图建立实体类



以上观点:纯属个人观点,如有错误之处,烦请大神指点!















      1

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。