SSH面试题总结
来源:互联网 发布:广联达预算软件入门 编辑:程序博客网 时间:2024/05/18 02:50
SSH面试题总结
题目1:Hibernate工作原理及为什么要用?
原理:
hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc + sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用:
1.
2.
3.
题目2: 什么是Hibernate延迟加载?
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。
题目3:Hibernate中类之间的关联关系有几种?(如:一对多、多对多的关系)
题目4: 说下Hibernate的缓存机制
一、hibernate一级缓存
(1)hibernate支持两个级别的缓存,默认只支持一级缓存;
(2)每个Session内部自带一个一级缓存;
(3)某个Session被关闭时,其对应的一级缓存自动清除;
二、hibernate二级缓存
(1) 二级缓存独立于session,默认不开启;
题目5: Hibernate的查询方式
本地SQL查询、Criteria、Hql
题目6: 如何优化Hibernate?
1.使用双向一对多关联,不使用单向一对多
2.不用一对一,用多对一取代
3.配置对象缓存,不使用集合缓存
题目7: Struts工作机制?为什么要使用Struts?
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
为什么要用:
1.
2.
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序
题目10:为什么要用spring?
Spring是一个轻量级的IOC和AOP框架。
1.
请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverable exception)。如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库。若你希望在某对象中创建一个指向另一个对象的关联,又不想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操作方式就用得上的了。如果为相应类映射关系设置了batch-size,那么使用这种操作方式允许多个对象被一批装载(因为返回的是代理,无需从数据库中抓取所有对象的数据)。
17.
1)
2)
3)
18.[Hibernate题目]:指出一下代码哪里错误使用了Hibernate。
背景简介:Board是一个实体类,id是它的主键,name和description是他的两个属性。BoardDao是Board实体的数据访问对象,BoardBo是业务对象,用户提交变更Board对象的请求,由Struts的BoardAction接收,调用BoardBo处理。HibernateUtil.currentSession()用于返回当前请求的Session对象。
- //数据访问层代码:BoardDao.java
-
public Board loadBoard(Long id) { -
Session session = HibernateUtil.currentSession(); -
return session.load(Board.class, id); -
} -
public void updateBoard(Board board) { -
Session session = HibernateUtil.currentSession(); -
session.update(board); -
} -
-
//业务对象层代码:BoardBo.java -
private BoardDao boardDao; -
public void updateBoard(Long id, String name, String description) { -
Board board = boardDao.loadBoard(id); -
board.setName(name); -
board.setDescription(description); -
boardDao.updateBoard(board); -
} -
-
//Web控制器代码:BoardAction.java -
private BoardBo BoardBo; -
public ActionForward execute( - ActionMapping
mapping, - ActionForm
form, - HttpServletRequest
request, - HttpServletResponse
response) throws Exception { -
String id = request.getParameter("id"); -
String name = request.getParameter("name"); -
String description = request.getParameter("description"); -
boardBo.updateBoard(id, name, description); -
return mapping.findForward("update-success"); -
}
6.
7.
8.
9.
简单叙述一下Spring中BeanFactory与ApplicationContext的差别
使用BeanFactory从xml配置文件加载bean:
imp
imp
public
}
public
}
简而言之,BeanFactory提供了配置框架和基本的功能, 而 ApplicationContext为它增加了更强的功能,这些功能中的一些或许更加接近J2EE并且围绕企业级应用。一般来说,ApplicationContext是 BeanFactory的完全超集,任何BeanFactory功能和行为的描述也同样被认为适用于ApplicationContext
2. 写一段程序,使用springAPI读取classpath下的一个xml文件,并解析
(1)Resource resource=new ClassPathResource("appcontext.xml");
4. 说说在hibernate中使用Integer做映射和使用int做映射之间有什么差别
Integer
Integer是对象.
int
根据你的数据库co
你没理由hbm.xml里写Integer,
(1)使用Spring如何简化了Hibernate编码?
通过org.springframework.orm.hibernate3.support.HibernateDaoSupport类支持数据库操作,且封装了事务.
public class AccountDAO extends HibernateDaoSupport
(2)Spring如何与Struts集成?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
</struts-config>
(3)如何使用Spring2.0实现声明式事务?
<!--通用事务管理器-->
<bean id="TransactionManager"
</bean>
<!--声明一个通知,用以指出要管理哪些事务方法及如何管理-->
<tx:advice id="txAdvice" transaction-manager="TransactionManager">
</tx:advice>
<!--声明一个config,用以将通知和目标业务类关联起来-->
<aop:config>
</aop:config>
(4)依赖注入的好处是?
程序可扩展性更强;
利于并行开发;
(5)Spring怎么实现依赖注入?
<?xml version="1.0" encoding="UTF-8"?>
<beans
</beans>
(6)“面向方面编程”的好处是?
将程序中涉及的公共问题集中解决
(7)和SQL相比,HQL有哪些特点?
HQL是面向对象的查询语言。select Fw表示查询Fw对象
(8)如何配置单向多对一关联?
<class name="Jd" table="TBL_JD">
</class>
(9)如何配置单向一对多关联?
<class name="Qx" table="TBL_QX">
</class>
(10)如何配置双向一对多关联?
<class name="Jd" table="TBL_JD">
</class>
<class name="Qx" table="TBL_QX">
</class>
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结.doc
- JavaWeb面试题(一)---SSH框架面试题总结
- [面试题] SSH面试题
- ssh面试题
- ssh经典面试题
- ssh面试题
- 面试题SSH
- SSH常见面试题
- SSH面试题汇总
- ssh面试题
- ssh面试题
- hdu1030 - Delta-wave (三角洲数学水题)
- HDU 4545 魔法串
- 彭丽媛出席世界防治结核病日宣传活动(组图)
- Qsort(Hello World!)
- Linux文件内容查看命令-less
- SSH面试题总结
- Qemu Internals:Overall architecture and threading model--qemu架构和线程模型
- vc传输字符===>java servlet====>hibernate====>mysql乱码问题
- 央行:4月15日前停止比特币交易为失实报道
- Android AVD出现"No system images installed for this target"
- POJ-2195 Going Home (最小费用最大流初学 && 最大权二分匹配—KM算法)
- PNG文件结构分析
- 向小牛进军
- linux ModeSetting学习