总结的javaWeb后端开发框架的知识点




谈一谈hibernate以及它的特点(重点)

   hibernate是一个全自动轻量级的持久化的orm框架,底层封装了jdbc

   通过对象关系操作数据库,它使用hql语句,大大的提高了开发效率。

   hibernate使用了java的反射机制,实现了结果集和pojo自动映射。

   hibernate支持各种关系数据库,从一对一到多对多的各种复杂关系.


 谈一谈hibernate的缓存机制(重点)

    一级缓存是session级别(事务级别)的缓存,默认开启的,不用管理.

    二级缓存是sessionFactory(进程级别)的缓存,使用第三方插件(EHcache OScache

    默认不开启,需要手动开启,可以进行管理.

    查询缓存,项目当中不经常使用.


 谈一谈mybatis(ibatis)以及它的特点

    mybatis是一个半自动的轻量级的orm框架,可以通过xml手写sql语句,

    使用起来更灵活.

    原理:加载xml文件->创建sqlsessionfactory->创建sqlsession->执行方法(提交事务)


 你用过哪些mvc的框架,有什么特点

  struts2action是多实例的,每次请求都会创建一个action实例

  struts2不仅仅是struts1的简单升级,它是在struts1的基础上整合了xwork的功能

  核心控制器: 2.1之前 filterDispatcher  2.2-2.3之后 strutsPrepareAndExcuteFilter

  工作原理 :  请求到达strutsPrepareAndExcuteFilter-->询问actionMapper-->

  如果有该action,请求交给actionProxy--->创建actionInvocation实例(创建action实例,执行方法,返回结果集)


  SpringMVC的工作机制或者是工作流程

 1- SpringMVCaction是单例

  请求交给dispatherServlet-->查询handlerMapping 找到对应的 handler-->

  2-handler业务逻辑处理完返回一个modelAndView-->交给视图解析器(viewResolver)解析

  --->渲染页面到客户端


    Spring的特性

   1- IOC(控制反转)又称 DI(依赖注入通常我们在程序当中是自己new一个对象,

   现在将对象的创建权交给spring容器来进行管理,有依赖关系的对象注入工作也是spring来实现的.

ioc采用的工厂设计模式来实现的,

BeanFactoryApplicationContext是核心接口

   2- SpringAOP,又称面向切面编程,通常在项目当中的事务、日志管理通过aop来实现的

   3- Springaop是基于动态代理来实现的,基于jdk cglib实现动态代理

   4- Spring往往还充当框架之间的桥梁或者粘合剂,可以更好的整合各个框架.


     struts2springMVC的区别

     机制不同 :struts2的核心控制器是strutsPrepareAndExcuteFilter SpingMVC dispatcherServlet 

     性能不同:Struts2是类级别的,每次请求都会创建一个action实例,进行属性的注入

                    Springmvc是方法级别的,每次请求都会请求同一个action实例的方法,

                通过注解形式注入request参数 

     设计思想:struts2更符合oop的思想,springmvc更倾向于servlet的扩展


    hibernate的调优

    1.制定合理的缓存策略;

    2.尽量使用延迟加载特性;

    3.采用合理的Session管理机制;

    4.使用批量抓取,设定合理的批处理参数(batch_size;

    5.进行合理的O/R映射设计



  hibernateibatis的区别:

     hibernate是全自动封装的,开发效率更便捷,mybatis是半自动封装的,

    可手写sql语句,它更灵活;


HibernateMyBatis共同点:

 相同点:HibernateMyBatis都可以是通过SessionFactoryBuiderXML配置文件生成SessionFactory

 然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。

 其中SessionFactoryBuiderSessionFactorySession的生命周期都是差不多的。

 •HibernateMyBatis都支持JDBCJTA事务处理。

 

Mybatis优势

 •MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

 •MyBatis容易掌握,而Hibernate门槛较高。

 

Hibernate优势

 •HibernateDAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

 •Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

 •Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL

 •Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

 

他人总结

 •Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,

而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

 •Hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,

在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

 •iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,

而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

 •iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,

但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。


数据库优化

常用IT技术博客论坛  csdn  iteye


一般来说,要保证数据库的效率,要做好以下几个方面的工作:

 

1:数据库设计 

数据库设计的三范式确保每一列都不可分割

                                      每张表只表述一件事物

                                      该表除了主键之外的其它字段都直接依赖主键

在设计数据库的时候,要充分考虑表之间的关联关系(一对多、多对多等等),合理建立外键。

在数据方面,要考虑未来每张表的极限值(oracle数据库合理的进行分区、分表)。在查询方面,

那些被经常查询的列,建立索引,来提高查询性能.


 

2:sql语句优化 

   1:尽量不使用select * 来查询全部,只查询需要的列,避免全表扫描

   2:尽量不使用in innot  inor  使用not exits代替

   3:应尽量避免在 where 子句中对字段进行表达式操作、函数操作

   4:尽量避免在复杂查询中使用模糊匹配 like 

   尽量不进行全表扫描,使用索引来进行查询

   索引并不是越多越好的,建立索引需要占用磁盘的空间,索引过多,也会

   造成插入、更新等操作时缓慢。



 

3:数据库参数配置

   

 

4:恰当的硬件资源和操作系统

   

5:数据库集群


6:创建适当的存储过程,因为存储过程是预编译的,比sql效率要高


java的经典设计模式

 单例和工厂必须要知道的,代理模式;

 http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html





      








   






 

谈一谈hibernate以及它的特点(重点)

   hibernate是一个全自动轻量级的持久化的orm框架,底层封装了jdbc

   通过对象关系操作数据库,它使用hql语句,大大的提高了开发效率。

   hibernate使用了java的反射机制,实现了结果集和pojo自动映射。

   hibernate支持各种关系数据库,从一对一到多对多的各种复杂关系.


 谈一谈hibernate的缓存机制(重点)

    一级缓存是session级别(事务级别)的缓存,默认开启的,不用管理.

    二级缓存是sessionFactory(进程级别)的缓存,使用第三方插件(EHcache OScache

    默认不开启,需要手动开启,可以进行管理.

    查询缓存,项目当中不经常使用.


 谈一谈mybatis(ibatis)以及它的特点

    mybatis是一个半自动的轻量级的orm框架,可以通过xml手写sql语句,

    使用起来更灵活.

    原理:加载xml文件->创建sqlsessionfactory->创建sqlsession->执行方法(提交事务)


 你用过哪些mvc的框架,有什么特点

  struts2action是多实例的,每次请求都会创建一个action实例

  struts2不仅仅是struts1的简单升级,它是在struts1的基础上整合了xwork的功能

  核心控制器: 2.1之前 filterDispatcher  2.2-2.3之后 strutsPrepareAndExcuteFilter

  工作原理 :  请求到达strutsPrepareAndExcuteFilter-->询问actionMapper-->

  如果有该action,请求交给actionProxy--->创建actionInvocation实例(创建action实例,执行方法,返回结果集)


  SpringMVC的工作机制或者是工作流程

 1- SpringMVCaction是单例

  请求交给dispatherServlet-->查询handlerMapping 找到对应的 handler-->

  2-handler业务逻辑处理完返回一个modelAndView-->交给视图解析器(viewResolver)解析

  --->渲染页面到客户端


    Spring的特性

   1- IOC(控制反转)又称 DI(依赖注入通常我们在程序当中是自己new一个对象,

   现在将对象的创建权交给spring容器来进行管理,有依赖关系的对象注入工作也是spring来实现的.

ioc采用的工厂设计模式来实现的,

BeanFactoryApplicationContext是核心接口

   2- SpringAOP,又称面向切面编程,通常在项目当中的事务、日志管理通过aop来实现的

   3- Springaop是基于动态代理来实现的,基于jdk cglib实现动态代理

   4- Spring往往还充当框架之间的桥梁或者粘合剂,可以更好的整合各个框架.


     struts2springMVC的区别

     机制不同 :struts2的核心控制器是strutsPrepareAndExcuteFilter SpingMVC dispatcherServlet 

     性能不同:Struts2是类级别的,每次请求都会创建一个action实例,进行属性的注入

                    Springmvc是方法级别的,每次请求都会请求同一个action实例的方法,

                通过注解形式注入request参数 

     设计思想:struts2更符合oop的思想,springmvc更倾向于servlet的扩展


    hibernate的调优

    1.制定合理的缓存策略;

    2.尽量使用延迟加载特性;

    3.采用合理的Session管理机制;

    4.使用批量抓取,设定合理的批处理参数(batch_size;

    5.进行合理的O/R映射设计



  hibernateibatis的区别:

     hibernate是全自动封装的,开发效率更便捷,mybatis是半自动封装的,

    可手写sql语句,它更灵活;


HibernateMyBatis共同点:

 相同点:HibernateMyBatis都可以是通过SessionFactoryBuiderXML配置文件生成SessionFactory

 然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。

 其中SessionFactoryBuiderSessionFactorySession的生命周期都是差不多的。

 •HibernateMyBatis都支持JDBCJTA事务处理。

 

Mybatis优势

 •MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

 •MyBatis容易掌握,而Hibernate门槛较高。

 

Hibernate优势

 •HibernateDAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

 •Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

 •Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL

 •Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

 

他人总结

 •Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,

而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

 •Hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,

在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

 •iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,

而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

 •iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,

但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。


数据库优化

常用IT技术博客论坛  csdn  iteye


一般来说,要保证数据库的效率,要做好以下几个方面的工作:

 

1:数据库设计 

数据库设计的三范式确保每一列都不可分割

                                      每张表只表述一件事物

                                      该表除了主键之外的其它字段都直接依赖主键

在设计数据库的时候,要充分考虑表之间的关联关系(一对多、多对多等等),合理建立外键。

在数据方面,要考虑未来每张表的极限值(oracle数据库合理的进行分区、分表)。在查询方面,

那些被经常查询的列,建立索引,来提高查询性能.


 

2:sql语句优化 

   1:尽量不使用select * 来查询全部,只查询需要的列,避免全表扫描

   2:尽量不使用in innot  inor  使用not exits代替

   3:应尽量避免在 where 子句中对字段进行表达式操作、函数操作

   4:尽量避免在复杂查询中使用模糊匹配 like 

   尽量不进行全表扫描,使用索引来进行查询

   索引并不是越多越好的,建立索引需要占用磁盘的空间,索引过多,也会

   造成插入、更新等操作时缓慢。



 

3:数据库参数配置

   

 

4:恰当的硬件资源和操作系统

   

5:数据库集群


6:创建适当的存储过程,因为存储过程是预编译的,比sql效率要高


java的经典设计模式

 单例和工厂必须要知道的,代理模式;

 http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html





      








   






 

你可能感兴趣的:(javaWeb,开发框架)