当前java web 开发用得一般都是哪些框架
1个回答
展开全部
1.有的人认为使用了SSH可以大大提高系统速度,其实不然,我两个月前遇到的一个银行反洗钱项目就使用struts1.2 + jdbc开发,数据库20G左右,同样正常运行,速度还可以,我认为SSH提高的是非视图层的开发效率,减少了维护难度,对于运行速度倒不一定
2.有的人认为只要会SSH的基本组合就可以了,其实不然,它们每个都是很多的版本,有些版本存在本质区别,如struts1和struts2的本质不同,spring2和spring2.5的注解配置,如果一点不考虑,一股脑采用配置文件,最终的结果只会被配置文件淹没,反而提高了维护难度,当然,太多的注解也让人昏迷,所以我认为必须对这些重点差异版本都进行学习,至少使用一会,自己去体会,找到配置文件和注解的平衡,从而提高开发效率,减少维护难度
3.有的人认为hibernate好啊,有了它就万事大吉,其实不然,经过实践证明,它无法对复杂sql进行良好处理,事实上,实际项目中对复杂sql的需求相当高,远比增删改多,比如,我曾经做过的反洗钱系统中,三个大表,即使分表后依然千万级的数据量,并且三表还存在关联,使用hibernate,无法想象,所以我们使用ibatis2来专门处理复杂查询sql,以及批量修改和删除,使用hibernate来处理其他操作
这里给一个SQL,看谁能使用HQL写出来,如果有,我佩服
Sql代码 收藏代码
select datename(year,a.tr_date)+datename(month,a.tr_date)+(case when day(a.tr_date)<10 then '0'+datename(day,a.tr_date) else datename(day,a.tr_date) end ) as trade_date,
datename(year,a.analyse_date)+datename(month,a.analyse_date)+(case when day(a.analyse_date)<10 then '0'+datename(day,a.analyse_date) else datename(day,a.analyse_date) end ) as analyse_date,
datename(year,a.rep_date)+datename(month,a.rep_date)+(case when day(a.rep_date)<10 then '0'+datename(day,a.rep_date) else datename(day,a.rep_date) end ) as rep_date,
a.*,
d.*,
s.file_name
from tbriskshow a, tbriskshow_detail d, tbriskshow_relation r, rep_riskshow_file s
where a.check_flag > 2
and a.sus_flag = 2
and r.id = a.id
and r.tbriskdetail_id = d.id
and a.status = 0
and a.type = 5
and s.riskshow_id = a.id
4.合理的配置文件布局很重要,项目开发才能正常进行,不要以为将所有struts,spring配置信息放置在一个文件中会很爽,如果你感觉到爽,那是因为你做的项目太小,所以全部按某种规范分开放置,使用总配置文件来引用这些配置
2.有的人认为只要会SSH的基本组合就可以了,其实不然,它们每个都是很多的版本,有些版本存在本质区别,如struts1和struts2的本质不同,spring2和spring2.5的注解配置,如果一点不考虑,一股脑采用配置文件,最终的结果只会被配置文件淹没,反而提高了维护难度,当然,太多的注解也让人昏迷,所以我认为必须对这些重点差异版本都进行学习,至少使用一会,自己去体会,找到配置文件和注解的平衡,从而提高开发效率,减少维护难度
3.有的人认为hibernate好啊,有了它就万事大吉,其实不然,经过实践证明,它无法对复杂sql进行良好处理,事实上,实际项目中对复杂sql的需求相当高,远比增删改多,比如,我曾经做过的反洗钱系统中,三个大表,即使分表后依然千万级的数据量,并且三表还存在关联,使用hibernate,无法想象,所以我们使用ibatis2来专门处理复杂查询sql,以及批量修改和删除,使用hibernate来处理其他操作
这里给一个SQL,看谁能使用HQL写出来,如果有,我佩服
Sql代码 收藏代码
select datename(year,a.tr_date)+datename(month,a.tr_date)+(case when day(a.tr_date)<10 then '0'+datename(day,a.tr_date) else datename(day,a.tr_date) end ) as trade_date,
datename(year,a.analyse_date)+datename(month,a.analyse_date)+(case when day(a.analyse_date)<10 then '0'+datename(day,a.analyse_date) else datename(day,a.analyse_date) end ) as analyse_date,
datename(year,a.rep_date)+datename(month,a.rep_date)+(case when day(a.rep_date)<10 then '0'+datename(day,a.rep_date) else datename(day,a.rep_date) end ) as rep_date,
a.*,
d.*,
s.file_name
from tbriskshow a, tbriskshow_detail d, tbriskshow_relation r, rep_riskshow_file s
where a.check_flag > 2
and a.sus_flag = 2
and r.id = a.id
and r.tbriskdetail_id = d.id
and a.status = 0
and a.type = 5
and s.riskshow_id = a.id
4.合理的配置文件布局很重要,项目开发才能正常进行,不要以为将所有struts,spring配置信息放置在一个文件中会很爽,如果你感觉到爽,那是因为你做的项目太小,所以全部按某种规范分开放置,使用总配置文件来引用这些配置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询