-
hibernate的效率很低吗?5
我有一个实体,大约30来个属性,其中2个1对多,4个多对一,
取这张表所有数据时,速度很慢很慢,有时会内存溢出,
当有5000条数据时,大约需要5分钟,这种情况正常吗?
ps:用了spring的hibernateTemplate取实体的所有数据
问题补充:
采用 懒加载的话,确实很快,大约1s把
但是,如果每个关联对象都懒加载的话,在应用层又要把这些对象初始化,岂不是很麻烦,不想用osiv。
问题补充:
表结果就是这样设计的,我也只是在上面缝缝补补,没招啊
“但是,如果每个关联对象都懒加载的话,在应用层又要把这些对象初始化,岂不是很麻烦,不想用osiv。”---有什么麻烦的,都是自动的。你这个完全没有道理。
如果数据量很大的话,也是很慢的,每初始化一个对象,就相当于一个select语句把2008年6月11日 16:54
相关推荐
- **应用程序级别的版本检查**:由应用程序自行实现版本检查,虽然灵活但效率较低,一般不推荐使用。 - **扩展周期的 Session 和自动版本化**:Hibernate 使用扩展周期的 Session 来提供自动版本检查,可以在同步时...
**hibernate完整的一个项目** ...它是一个很好的起点,帮助你理解ORM的工作原理,提升数据库操作的效率。在实践中,你可以逐步完善和优化这个项目,例如引入更多高级特性,如二级缓存、拦截器、事件监听等。
然而,Hibernate的缺点是性能可能较低,因为ORM层会增加一定的开销,而且在大型项目中,配置和调试可能会变得复杂。 **MyBatis** MyBatis是一个轻量级的半自动ORM框架,它将SQL语句和Java代码分离,允许开发者直接...
- **开发效率低**:需要手动编写大量SQL语句。 - **代码冗余**:数据库操作代码重复。 - **高重复性**:很多通用操作需要重复实现。 5. **ID 生成策略**: Hibernate 提供了几种ID生成策略,如 `native`、`...
另外,合理的事务隔离级别设置也很关键,过高或过低的事务隔离级别都可能影响性能。 #### 九、开启SQL日志功能 为了更好地监控Hibernate的性能,可以开启SQL日志功能。通过将`hibernate.show_sql`属性设置为`true`...
通过对Hibernate及其相关的Java多线程基础知识的介绍,我们可以看出,Hibernate不仅能够极大地提高开发效率,降低开发复杂度,而且在实际应用中也表现出了优秀的性能。同时,了解Java多线程的基本概念对于更好地利用...
Hibernate通过映射配置文件将Java实体类与数据库表对应,实现了对象与关系数据之间的转换,简化了数据库操作,提高了开发效率。 **SSH整合的优势** 1. **模块化开发**:Struts处理请求,Spring管理业务逻辑,...
2. **对象关系映射**:对于那些具有复杂关系的数据结构,Hibernate可以很好地处理一对一、一对多和多对多的关系映射。 3. **性能优化**:Hibernate提供了缓存机制,可以在一定程度上提高数据访问速度。 #### 三、...
悲观锁认为数据很可能会被并发访问,因此在事务开始时就锁定数据直到事务结束。 在Hibernate中,可以通过以下方式使用悲观锁: ```java public void testPessimisticLock() { Session session = sf.openSession()...
如果数据库不支持`ScrollableResultSets`,则需要通过迭代`ResultSet`逐条移动,直至达到指定的起始位置,这种方式效率较低。 总的来说,Hibernate在进行分页查询时具有很高的灵活性,它会根据所连接的数据库类型和...
3. **灵活性较低**:由于Struts采用了一种较为固定的架构,因此在某些特定场景下可能会显得不够灵活。 4. **依赖Servlet容器**:Struts中的Action类依赖于Servlet容器提供的上下文环境,这在一定程度上限制了它的可...
由于涉及到Java和C语言的转换,这种驱动类型效率较低且已很少使用。 - **Type 2 (部分Java实现的本地JDBC驱动)**: 这种驱动部分用Java实现,部分用本地代码实现,仍然需要客户端安装相应的驱动程序。 - **Type 3 (纯...
- **性能损耗**:虽然Hibernate在很多方面提高了开发效率,但其对象关系映射过程可能导致额外的性能开销。 - **内存消耗**:由于需要维护对象状态和数据库状态的一致性,Hibernate可能占用更多的内存资源。 - **...
- **新项目**:如果你正在启动一个新项目,并且可以完全控制对象模型和数据库设计,那么Hibernate是一个很好的选择。它可以提供更丰富的对象模型支持和更高的自动化程度。 - **遗留系统或第三方数据库**:对于那些...
HikariCP以其极低的延迟和优秀的性能而闻名,它是很多现代Java应用的首选。配置HikariCP时,需要将C3P0相关的配置替换为HikariCP的配置项。 ### 性能优化 连接池的性能优化通常涉及调整参数,例如最小和最大连接数...
这一章将讨论Hibernate如何封装JDBC,以及如何在需要时直接使用JDBC进行低级别操作。 6. **Chapter 18 - Lazy Loading**: 懒加载是Hibernate优化性能的重要手段,它延迟了关联对象的加载直到真正需要时。我们将...
Hibernate作为一个成熟的ORM(对象关系映射)框架,它通过引入缓存机制极大地提高了数据访问的效率。Hibernate二级缓存是其重要的特性之一,主要作用是减少对数据库的直接访问,减少数据库压力,提高系统性能。 ...
3. **低依赖性**: 在 Spring 应用中,大多数业务对象对 Spring API 的依赖程度很低,提高了代码的可移植性和可维护性。 4. **易于测试**: 使用 Spring 构建的应用更容易进行单元测试,因为 Spring 支持依赖注入,...
- 缺点:表的数量较多,维护成本高,查询效率较低。 例如,对于 `AbstractPerson`, `Customer` 和 `Employee` 这三个类,会分别创建 `person`, `customer`, `employee` 三个表,其中 `person` 表包含了所有共有的...
### Struts + Hibernate + Spring 整合文档知识点详解 ...综上所述,Struts + Hibernate + Spring的整合不仅能够帮助开发者构建出结构清晰、功能强大的应用系统,还能够在很大程度上提升开发效率和系统的稳定性。