struts+spring+hibernate(2)
时间:2025-06-29
时间:2025-06-29
struts+spring+hibernate
反遇到数据库的操作上,Spring就会拿到自己管理的数据访问对象(DAO)来完成相应的数据库操作,如果是多个操作,Spring可以帮你做到这些操作之间的事务一致性。
hibernate的运行机制是什么?
Hibernate应该是建立在JDBC基础上的一个开源的ORM映射框架
它很好的封装了实体映射实现,提供友好的实体操作接口,以及基于
类SQL(HQL)的查询接口,在开发中可以减少编写SQL相关代码,提高效率和
减少出错,利于维护~
Hibernate应该是建立在JDBC基础上的一个开源的ORM映射框架
它很好的封装了实体映射实现,提供友好的实体操作接口,以及基于
类SQL(HQL)的查询接口,在开发中可以减少编写SQL相关代码,提高效率和
减少出错,利于维护~
struts+spring+hibernate面试题
1 Action是不是线程安全的?如果不是有什么方式可以保证Action的线程安全?如果是,说明原因
Action不是线程安全的。只要不申明类变量就可以保证线程安全。因为只存在一个Action实例,所有线程会共享变量。
声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在spring中用scope="prototype"来管理
2.MVC,分析一下struts是如何实现MVC的
m:JavaBean 或结合 EJB 组件或者pojo构成
c:ActionServlet 、action来实现
v:一组 JSP 文件及其标签构成。
3.struts中的几个关键对象的作用(说说几个关键对象的作用)
Action:控制器类,ActionForm:表单对象,DynaValidatorForm:动态form,ActonMapping:配置文件中action节点的信息......
4.说说AOP和IOC的概念以及在spring中是如何应用的
AOP:面向切面编程,ioc:依赖注入;声明式事务和编程式事务积极一些通用部分
5.Hibernate有哪几种查询数据的方式
hql查询,sql查询,qbc条件查询
6.load()和get()的区别
hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,load()默认支持延迟加载,在用到对象中的其他属 性数据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常ObjectNotFoundEcception;所说的load方法抛异常是指在使用 该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所 以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则
创建代理(load时候之查询一级缓存,不存在则创建代理)。 get()首先会在一级缓存找数据,没有就去二级缓存找,没有就去数据库找,没有就返回null ;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。
简单地说:如果查询不到数据load()会抛异常
下一篇:公民道德建设月实施方案