- 浏览: 917066 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (498)
- J2EE (52)
- 数据库 (17)
- java基础 (43)
- web技术 (19)
- 程序设计 (6)
- 操作系统 (18)
- IT资讯 (7)
- 我的IT生活 (12)
- 学习笔记 (9)
- Jquery (25)
- JavaScript (18)
- spring (40)
- Hibernate (12)
- Struts (10)
- YUI (2)
- Extjs (22)
- .net (0)
- Eclipse (10)
- 社会主义 (2)
- 服务器 (9)
- CSS (8)
- 网络安全 (16)
- 版本控制 (9)
- PHP (2)
- Oracle (42)
- SQL server (1)
- Mysql (11)
- 项目管理 (3)
- 开发工具使用 (10)
- SQL语句 (7)
- Perl (0)
- Shell (6)
- 漏洞 (4)
- ibatis (5)
- hacker (2)
- SQL注入 (6)
- Hacker工具 (2)
- 入侵和渗透 (7)
- 插件/组件 (2)
- 最爱开源 (5)
- 常用软件 (2)
- DOS (1)
- HTML (2)
- Android (9)
- CMS (1)
- portal (8)
- Linux (7)
- OSGI (1)
- Mina (5)
- maven (2)
- hadoop (7)
- twitter storm (2)
- sap hana (0)
- OAuth (0)
- RESTful (1)
- Nginx (4)
- flex (1)
- Dubbo (1)
- redis (1)
- springMVC (1)
- node.js (1)
- solr (2)
- Flume (1)
- MongoDB (2)
- ElasticSearch (1)
最新评论
-
M_drm:
请问要怎么设置浏览器才不报没权限呢?
用JS在页面调用本地可执行文件的方法(ACTIVEX) -
Alexniver:
官方文档。When importing data into I ...
mysql导入数据过慢 解决方法 -
camelwoo:
我记得 Criteria 可以做连接查询与子查询,也可以做分页 ...
Hibernate总结篇二 -
zhenglongfei:
楼主如果SubKeyName 这个节点不存在,怎么办??怎么用 ...
Java操作注册表 -
yxx676229549:
用log4j 2 了
logback
hibernate
1.在数据库中条件查询速度很慢的时候,如何优化?
(1).建索引
(2).减少表之间的关联
(3).优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
(4).简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
2.在hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之对应,如何解决这个问题?
解决方案一,按照Object[]数据取出数据,然后自己组bean
解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成这个bean了。具体怎么用请看相关文档,我说的不是很清楚。
hibernate的核心类是什么,它们的相互关系是什么?重要的方法是什么?
Configuration 接口:配置Hibernate,根据其启动hibernate,创建
SessionFactory 对象;
SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建
session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应
用的多个线程共享,是重量级、二级缓存;
Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,
避免多个线程共享同一个session,是轻量级、一级缓存;
Transaction 接口:管理事务;
Query 和Criteria 接口:执行数据库的查询。
Session如下方法
Save/ load/Update/Delete/get/saveOrUpdate/deleteAll
Query q=CreateQuery(“from Customer where customerName=:customerName”)
beginTransaction
close
Transaction
Commit()
优化hibernate性能的几点建议
1、针对oracle数据库而言,Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数,一般设置为30、50、100。Oracle数据库的JDBC驱动默认的Fetch Size=15,设置Fetch Size设置为:30、50,性能会有明显提升,如果继续增大,超出100,性能提升不明显,反而会消耗内存。
即在hibernate配制文件中进行配制:
1 <property name=”hibernateProperties”> 2 <props> 3 <prop key=”hibernate.dialect”>org.hibernate.dialect.Oracle9Dialect</prop> 4 <prop key=”hibernate.show_sql”>false</prop> 5 <!– Create/update the database tables automatically when the JVM starts up 6 <prop key=”hibernate.hbm2ddl.auto”>update</prop> –> 7 <!– Turn batching off for better error messages under PostgreSQL 8 <prop key=”hibernate.jdbc.batch_size”>100</prop> –> 9 <prop key=”hibernate.jdbc.batch_size”>50</prop> 10 </props>
1 <property name=”hibernateProperties”> 2 <props> 3 <prop key=”hibernate.dialect”>org.hibernate.dialect.Oracle9Dialect</prop> 4 <prop key=”hibernate.show_sql”>false</prop> 5 <!– Create/update the database tables automatically when the JVM starts up 6 <prop key=”hibernate.hbm2ddl.auto”>update</prop> –> 7 <!– Turn batching off for better error messages under PostgreSQL 8 <prop key=”hibernate.jdbc.batch_size”>100</prop> –> 9 <prop key=”hibernate.jdbc.batch_size”>50</prop> 10 </props> </property>
Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。
2、如果是超大的系统,建议生成htm文件。加快页面提升速度。
3、不要把所有的责任推在hibernate上,对代码进行重构,减少对数据库的操作,尽量避免在数据库查询时使用in操作,以及避免递归查询操作,代码质量、系统设计的合理性决定系统性能的高低。
4、 对大数据量查询时,慎用list()或者iterator()返回查询结果,
(1). 使用List()返回结果时,Hibernate会所有查询结果初始化为持久化对象,结果集较大时,会占用很多的处理时间。
(2). 而使用iterator()返回结果时,在每次调用iterator.next()返回对象并使用对象时,Hibernate才调用查询将对应的对象初始化,对于大数据量时,每调用一次查询都会花费较多的时间。当结果集较大,但是含有较大量相同的数据,或者结果集不是全部都会使用时,使用iterator()才有优势。
5、在一对多、多对一的关系中,使用延迟加载机制,会使不少的对象在使用时方会初始化,这样可使得节省内存空间以及减少数据库的负荷,而且若PO中的集合没有被使用时,就可减少互数据库的交互从而减少处理时间。
6、对含有关联的PO(持久化对象)时,若default-cascade=”all”或者 “save-update”,新增PO时,请注意对PO中的集合的赋值操作,因为有可能使得多执行一次update操作。
7、 对于大数据量新增、修改、删除操作或者是对大数据量的查询,与数据库的交互次数是决定处理时间的最重要因素,减少交互的次数是提升效率的最好途径,所以在开发过程中,请将show_sql设置为true,深入了解Hibernate的处理过程,尝试不同的方式,可以使得效率提升。尽可能对每个页面的显示,对数据库的操作减少到100—-150条以内。越少越好。
一组Struts的选择测试题附答案
(1)在Struts应用的视图中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E) 代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(2)在Struts应用的控制器中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(3)在Struts应用的模型中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(4)以下代码定义了一个变量,如何输出这个变量的值?(多选)
<bean:define id=\”stringBean\” value=“helloWorld“/>
选项:
(A)<bean:write name=“stringBean\”/>
(B) <bean:write name=“helloWorld\”/>
(C)<%= stringBean%>
(D)
<% String myBean=
(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);
%>
<%=myBean%>
(5)把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?(多选)
A)提高可维护性
B)提高可重用性
C)支持国际化
D)提高运行速度
(6)以下哪些说法是正确的?(单选)
选项:
(A)每个HTTP请求对应一个单独的ActionServlet实例
(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例
(D)每个子应用对应一个单独的web.xml文件
(7)下面哪些任务是RequestProcessor完成的?(多选)
选项:
(A)把Struts配置文件信息加载到内存中
(B)把资源文件信息读入到内存中
(C)如果需要的话,创建ActionForm实例,组装数据,并进行表单验证
(D)找到匹配的Action实例,调用其execute()方法
(E)把请求转发到Action的execute()方法返回的ActionForward代表的组件。
(8)对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)
<action path = \”/HelloWorld\”
type = \”hello.HelloAction\”
name = \”HelloForm\”
scope = \”request\”
validate = \”true\”
input = \”/hello.jsp\”
>
<forward name=\”SayHello\” path=\”/hello.jsp\” />
</action>
选项:
(A) return (new ActionForward(mapping.getInput()));
(B) return (mapping.findForward(\”SayHello\”));
(C) return (mapping.findForward(“hello.jsp\”));
(9)对于以下这段配置ActionServlet的代码,哪些说法是正确的?(多选)
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/myconfig.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!– Standard Action Servlet Mapping –> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
选项:
(A)Servlet容器在启动Struts应用时,会初始化这个ActionServlet。
(B) 对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理。
(C) 这段代码位于struts-config.xml中。
(D)这段代码位于web.xml中。
(10) 问答题:MVC是什么含义?
答案:
(1)A,G (2)B,C,D (3)E,F (4)A,D (5)A,B,C (6)C (7)C,D,E (8)A,B (9)A,B,D
(10)M表示Model(模型),V表示View(视图),C表示Controller(控制器)
发表评论
-
HTTP文件断点上传
2013-05-14 00:10 1032HTTP文件断点上传 http://www.cnblogs.c ... -
使用 Eclipse Memory Analyzer 检测内存泄漏问题
2013-05-05 19:01 866转:http://blog.csdn.net/moneyice ... -
Java字符编码根本原理
2013-04-03 16:33 869Java开发中,常常会遇到乱码的问题,一旦遇到这种问题,常常就 ... -
StringUtils常用方法说明
2013-01-28 09:21 1004http://www.iteye.com/topic/1128 ... -
中文排序要注意的问题
2012-12-08 10:10 1152遇到了中文排序问题,比如想用拼音排序, String[] ... -
位运算
2012-11-21 17:50 954程序中的所有数在计算 ... -
HashMap的2中遍历方式比较
2012-11-20 11:47 1011http://smallnetvisitor.iteye.co ... -
java计算校验和:对“消息头+会话头+事务头+操作信息”按32位异或,对异或结果取反后的值为校验和。
2012-08-14 17:41 3541java计算校验和:对“消 ... -
java中对Byte字符数组定长截取的方法
2012-08-14 16:33 2107今天在在处理从网络上接收到的字符串,因为是从后台C语言过来的一 ... -
用java流方式判断文件类型
2012-06-28 09:50 1759原文:http://rainsilence.iteye.com ... -
ConcurrentHashMap分析
2012-02-07 16:36 1043ConcurrentHashMap分析 http://w ... -
Webservice调用方式:axis,soap详解
2011-11-29 12:41 1546转自:[url] http://blog.csdn.net/b ... -
java使用相对路径读取xml文件
2011-11-24 20:16 2842java使用相对路径读取xml文件: 一、xml文件一般的存放 ... -
Java 加载配置文件的方式
2011-11-24 20:15 942Java 加载配置文件的方式 http://liuzidon ... -
如何获得request response session 对象
2011-10-10 18:39 1323如何获得request response se ... -
JDBC DAO设计
2011-07-05 14:52 1136Connection的含义 Conn ... -
通过分析JDK源代码研究 Hash 存储机制
2011-07-01 15:53 1265HashMap 和 HashSet 是 Java Collec ... -
java判断数组内有无重复元素
2011-03-23 16:50 5293/** * 判断数组内有无重复元素 * @param ... -
java监听组合键
2011-03-18 15:13 1143监听普通ctrl+c的代码 public void keyP ... -
jdbc中执行一系列sql语句时一个简单事务的实现
2011-01-23 22:35 1659以下代码并没有用到第三方的东西,完全是在java jdk的接口 ...
相关推荐
Struts、Hibernate和Spring是Java开发中非常重要的三个框架,它们在企业级应用开发中扮演着核心角色。这里我们将深入探讨这三个框架以及相关的面试题,帮助你更好地理解和准备相关面试。 1. **Struts框架** Struts...
2023年StrutsHibernateSpring经典面试题收藏.doc
5. Struts与Spring的区别:Struts1基于JSP和Servlet,Struts2基于Webwork,两者都是MVC框架但技术栈不同。 6. Spring的核心特性:IOC和AOP,以及它们在应用中的作用。 7. JSF(JavaServer Faces):与Struts类似的...
这些面试题涵盖了Hibernate、Struts和Spring的主要概念、工作原理和最佳实践,深入理解和掌握这些知识点对于Java开发者来说至关重要。在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些...
Spring、Struts2、Hibernate面试题详解 本文将详细解释 Spring、Struts2、Hibernate 面试题中的知识点,涵盖了 MVC 模式、Struts1.2 和 Struts2.0 的区别、单例模式、Servlet 依赖、可测试性、项目中使用 SSH 的...
以下是对SSH面试题中涉及的一些核心知识点的详细解释: 1. **Hibernate 工作原理** Hibernate 的工作流程主要包括: - 读取`hibernate.cfg.xml`配置文件,创建`Configuration`实例,加载类映射信息。 - `...
Struts、Hibernate 和 Spring 经典面试题 以下是对 Struts、Hibernate 和 Spring 的经典面试题的总结,涵盖了这些框架的工作机制、优点、缓存机制、查询方式、优化方法等知识点。 Hibernate 1. Hibernate 工作...
【Spring Struts Hibernate面试题详解】 在面试中,关于SSH(Spring、Struts、Hibernate)的知识点通常是Java Web开发人员必须掌握的核心内容。下面将详细解释这些技术的关键特性和应用场景。 1. **MVC设计模式** ...
包含java方向的所有面试题目内容: java jsp servlet ,javabean spring hibernate struts ejb等内容...这些都是我找了综合的..因为今天我也要找工作!祝大家好运
【SSH面试题汇总】主要涉及的是Struts、Spring和Hibernate这三个流行Java EE框架的相关知识,以及MVC设计模式的理解。MVC(Model-View-Controller)模式是软件工程中的一种架构模式,它将应用程序分为三个核心组件:...
### Struts、Spring、Hibernate 面试题详解 #### 1. Action 是否线程安全?如果不是,如何保证 Action 的线程安全? - **答案**:通常情况下,Struts 的 Action 不是线程安全的。因为同一个 Action 实例可能会被多...
在面试中,了解Struts2的核心组件及其与Struts1的区别是至关重要的。熟悉这些知识点可以帮助开发者在实际项目中更有效地利用Struts2框架,提高开发效率和应用的质量。同时,理解Web项目开发的角色划分和流程规范,也...
一些关于Struts.Spring和Hibernate的经典面试题
Struts、Hibernate、Spring是Java Web开发中的三大框架,它们分别负责不同的职责,共同构建了高效、解耦的J2EE应用程序。Struts主要处理表现层逻辑,通过ActionServlet接收和处理用户请求,并将控制权交给业务逻辑层...
Struts,Hibernate,Spring是Java企业级开发中三大核心框架,常被用于构建高性能、解耦的J2EE系统。...这三大框架的经典面试题涵盖了它们的核心概念、工作原理、优化技巧以及实际应用,是评估开发者技能的重要标准。
在IT行业的面试中,SSH(Struts、Hibernate、Spring)框架是常见的面试主题,因为这三大框架在企业级Java应用开发中占据着核心地位。以下是对这些框架的一些关键知识点的详细解释: 1. **Hibernate**: - **工作...
在IT行业中,Spring、Struts和Hibernate是三个非常重要的Java框架,它们构成了经典的MVC(Model-View-Controller)架构,常用于企业级应用开发。面试时,掌握这些框架的基本概念、工作原理以及如何整合使用是非常...
在Java Web开发中,Struts、Spring和Hibernate是最常见的三大框架,它们...以上就是关于Struts、Spring和Hibernate面试题的详细解析,涵盖了这三大框架的关键概念和使用技巧,对于理解和解答相关面试问题非常有帮助。
2. **面试题**:Spring的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是如何工作的?Spring如何实现AOP?Spring事务管理有哪几种方式? 3. **使用目的**:Spring简化了组件的配置...
根据给定文件中的标题、描述、标签以及部分内容,下面将详细阐述Spring、Hibernate与Struts相关的面试笔试知识点。 ### Spring框架的关键概念 1. **IoC容器**:Spring框架的核心特性之一是其提供了依赖注入...