个人总结的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
时间: 2024-10-03 01:19:14