模拟面试

1、having和where的区别:

where和having的执行级别不同
在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。
having就是来弥补where在分组数据判断时的不足。因为where执行优先级别要快于聚合语句。

 

2、ssh的优缺点

struts2:

优点:

实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。

 丰富的标签库,大大提高了开发的效率。(个人不是很会用,喜欢jstl)

页面导航,通过配置文件。使得系统脉路清晰,便于他人接手。

异常处理机制强。

可拓展性高,对其他插件支持性高。开源

拦截器实现了aop思想。

缺点:

取得jsp传递的参数有点乱,一个action处理多个简单功能参数过多的时候可以体现出来。

测试不是很方便,测试比较依赖web容器。

与servlet耦合还是比较重

 

hibernate:

优点:

oo,可以以完全面向对象的方式进行系统分析与设计,很java。

映射强,使用反射技术,对于处理负责的关系的时候,降低了程序员对sql的要求。

轻量级框架,性能好。

灵活性强,例如集合属性的选择就有list、set、bag等等

缺点:

限制使用的对象模型:例如一个持久性类不能对应多个表

学习成本较高。

对于大表的关联查询和处理上不是很完美,比如批量操作。往往借助jdbc某些做法。

 

spring:

优点:

这框架很强感觉。

IOC控制反转降低各层耦合。消除常见的单例使用过多问题

简洁aop并实现了事务处理等操作

无侵略性,模块划分很好,对其他容器的兼容很好,有效组织中间层对象。

缺点:

虽然很成熟,许多功能也集成,但是还未被标准,大型分布式系统可能有点难。(这点我未有接触过)

 

posted @ 2016-10-11 09:37  guodaxia  阅读(129)  评论(0编辑  收藏  举报