重新用strtus spring hibernate重构PetStroe案例.规化了一下数据库,里面用到了太多的联级.对于像我一样的新手来说,可能在设计的时候会遇到一些麻烦
比如会问:如何在数据库中进行联级,是否需要在数据库中联级,在hibernate配置文件中进行联级好还是在数据库中进行联级好?如何在hibernate配置文件中进行联级?等等
不管你是什么水平,相信你都发问过.那么现在我以一个新手的视角来谈谈自已的一些看法.希望有不对的地方,请高手们留下您的脚印.
首先.大项目中联级操作是肯定会用到的,但大公司开发的时候一般用一些数据模型软件直接生成数据库文件.因为这个我没用过,所以不清楚是否将所有的联级都在数据库中生成.我在网上问了一些朋友及自己的一些看法总结得出是,只有特别重要的字段才进行联级,也就是建立外键.原因是如果所有关联数据都进行了关联,使得维护变得困难.
那么不是所有的关联都在数据库中配置,固然是在hibernater配置文件中配置.而且必须将所有的关联都进行配置.
如何进行配置呢,最简单也是最有效的方法是,您首先得有一副全局E-R模型.标示出对应的关系,在配置时除了基本的数据项以外,还必须将这些关系写进去.
至于如何在hiberntae配置中进行联级,这里就不说了,我也说不好,太复杂,不会的朋友有必要去查查相关资料,这里简单说一下需要注意的地方:
1.对象关联关系有一对一,多对一,一对多和多对多,其中多对一和一对多关系比较常见,一对一关系有两种方式:以关键盘关联和以外键关联,一对多和多对一通常应设置为双向关联,并在"一"之一方设置iverse="true".
将一对多的关联映射,定义成双向一对多关联,并且避免能过一的那端控制关联关系有最好的性能表现.
多对多需要第三张表来保存两个实体之间的关系.
2.hibernate检索策略有产即检索,延迟检索,预先检索,批量立即检索和批量延迟检索.对于末端为"一"的关联,一般设置为预先抓取,对于末端为"多"的关联,一般设置为延迟检索.hibernater默认为此检索,用到的时候可以不写.
3.对于多对一的关联,可以关闭延迟加载,因为多个实体只对应一个实体,关闭延迟加载不会引起太多的性能下降,但对于一对多的关联,则不应该关闭延迟加载,如果关闭延迟加载,可能抓取一条主记录时,有百万条从记录随之初始化,这对性能的消耗非常大.所以对于文件中的set元素,则不可关闭延迟加载.
分享到:
相关推荐
这个压缩包“javaEE开发脚手架.zip”中可能包含的文件有配置文件(如pom.xml、applicationContext.xml)、源代码文件(.java、.jsp)、静态资源(CSS、JavaScript、图片)、数据库配置文件(.xml或.properties)、...
在项目实现过程中,Spring Boot简化了传统Spring框架的复杂性,通过"约定优于配置"的原则,大大减少了XML配置文件的使用。开发者可以快速地搭建起一个运行环境,包括数据库连接、模板引擎、安全控制等多个层面。在这...
【标题】"基于SSM的西藏旅游网站"是一...这个项目对于学习和实践JavaEE开发、SSM框架整合以及旅游行业的信息化建设具有很高的参考价值。通过实际操作,开发者不仅可以掌握相关技术,还能了解如何将技术应用于实际场景。
在这个项目中,开发者可能使用了Spring Boot的快速开发特性,简化了传统JavaEE项目的配置,提高了开发效率。同时,该项目可能包含了用户管理、预约咨询、在线咨询、报告生成等多个模块,旨在为高校师生提供便捷、...
《基于SSM的农业信息管理系统的设计与实现》 在当今信息化时代,农业信息管理系统的建设对于提高农业生产效率、优化资源...同时,该项目也展示了JavaEE技术在实际项目开发中的应用,为开发者提供了良好的学习参考。
《SpringBoot+Vue的应急救援物资管理系统:JavaEE项目的实践与探索》 在现代信息化社会,应急救援物资管理系统的建设显得尤为重要。此项目基于SpringBoot和Vue.js技术栈,实现了前后端分离的设计模式,旨在提高应急...
本文将深入探讨一个基于SpringBoot和Vue.js技术栈构建的高校教师科研管理系统,该系统实现了JavaEE项目中的前后端分离,为科研工作提供了高效、便捷的数字化解决方案。 首先,SpringBoot是Spring框架的一个轻量级...
Action类通过配置文件(struts.xml)与URL路径关联,使得用户可以通过浏览器发起不同的请求,调用相应的业务处理。 其次,Struts2的拦截器(Interceptor)机制增强了Action的功能。在图书管理系统中,可以定义拦截...
3. **MyBatis框架**:MyBatis是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或注解中,减少了对JDBC的直接操作,提高了数据库访问的便捷性和效率。 **教务信息平台功能模块** 1. **用户管理**:包括...
项目部署文件则指导用户如何在本地环境上配置和运行系统,这对于初学者来说极其宝贵,他们可以借此了解服务器配置、应用部署等实践操作。此外,系统的完备性也体现在其包容性,无论是在Windows、Linux还是其他操作...
教师办公管理系统作为学校信息化建设的重要组成部分,能够有效地提高教师工作效率,优化教学资源配置,促进教育教学质量的提升。本项目基于SSM(Spring、SpringMVC、MyBatis)框架,实现了教师办公管理系统的全面...
首先,Spring框架是JavaEE开发中的核心组件,它提供了一种依赖注入(DI)机制,使得对象之间的关系不再硬编码,而是通过配置文件或注解来定义。此外,Spring的AOP(面向切面编程)功能允许我们实现日志记录、事务...
总结起来,这个高级图书管理系统后台源码基于SpringMVC框架,采用MySQL作为数据库,提供了完整的数据库脚本和详细的配置文件,为开发者提供了一个良好的学习和实践平台。通过理解和分析源码,我们可以深入了解...
MyBatis则是一个持久层框架,允许开发者将SQL语句直接写在XML配置文件中,方便数据访问。通过SSM框架,可以高效地构建出稳定、可维护的校园门户网站。 MySQL是一款关系型数据库管理系统,具有高性能、高可用性和...
通常步骤包括:配置服务器环境(如Java、Tomcat等)、导入数据库脚本、调整系统配置文件、打包项目并部署到服务器。这一过程需要对Web服务器和数据库有一定的了解。 总的来说,这个JavaEE实现的停车场管理系统是一...
数据库文件中可能包含了SQL脚本,用于初始化和填充数据库,以快速搭建环境。 项目的文档部分包括“部署要点.doc”、“图书馆借阅系统.docx”和“图书馆借阅系统.pptx”,这些文档详细阐述了系统的功能、设计思路、...
3. MySQL:作为关系型数据库,MySQL被用来存储系统中的各种数据,如用户信息、预订记录、房间状态等。通过JDBC连接数据库,执行SQL语句进行数据操作。 4. Servlet与JSP:Servlet处理HTTP请求,执行业务逻辑,而JSP...
OA会议系统之会议管理模块是企业信息化建设中的一个重要组成部分,它通过集成Layui前端框架,结合后端的JavaEE技术栈,实现了高效便捷的会议安排、管理与协作功能。本系统采用B/S架构,数据库选用MySQL,为用户提供...
- **具体内容**:熟悉Java开发环境的配置,掌握基本软件的操作流程,并对数据结构有一定的认识。 - **预期成果**:能够正确配置Java开发环境,熟悉基本的软件操作,并掌握常用数据结构。 - **面向对象程序设计与...
4. **后端开发**:JavaEE是本系统采用的主要后端技术,它提供了丰富的API和框架(如Spring Boot、Spring MVC)来处理业务逻辑、数据库操作和服务器端交互。 5. **数据库管理**:MySQL、Oracle或PostgreSQL等关系型...