您的位置:首页 > 博客中心 > 编程语言 >

Java Web 项目优化

时间:2022-03-24 18:43

个人总结的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

热门排行

今日推荐

热门手游