|
Hibernate与Spring整合后,就可以使用IoC及AOP的功能了,好处不在多言。另外一个好处,就是可以通过使用Spring的HibernateTemplate来简化数据库CRUD代码。然而,正是这个HibernateTemplate,存在着以下的缺点: 一是功能不全,不如Hibernate的储如createQuery()等方法方便、灵活与强大,使用颇受限制; 正是由于这三点,使我抵制住了使用HibernateTemplate的诱惑,在将Spring与Hibernate整合后,通过简单的配置,在Spring程序中自由地使用Hibernate3.1.2的功能。这样既可以实现强强联手,又可以在Hibernate新版本出来后,马上进行重新整合,无需等着新版的Spring出来。 在实现上,主要有三点。 一是在Spring的配置文件中,无需定义长长的hibernateTemplate,只需定义sessionFacotry就行了。 例如,设有一"组织DaoImpl",实现了"组织Dao"及"HibernateDao"两个接口。而"组织Service"通过将"组织DaoImpl"封装起来,对外提供相应的数据库功能服务。 public interface HibernateDao { public interface 组织Dao { public class 组织DaoImpl implements 组织Dao, HibernateDao { public void setSessionFactory(SessionFactory sessionFactory) { public 组织 get组织By名称(String 组织名称) { public interface 组织Service { (实际代码中,组织Service与组织DaoI的接口是一样的) 先在Spring的配置文件中定义"组织Service"与"组织Dao": <bean id="组织Service" <bean id="组织Dao" 这一步比较好理解。问题是如何将我们所需的sessionFactory传过来。Hibernate的sessionFactory不是一个可以用构造方法或setter方法就可以直接生成的类,而是需要进行一定的"运算"后才得出的类,典型的形式如: sessionFactory = new Configuration().buildSessionFactory(); 因此,简单地在Spring中如下配置行不通。 <bean id="sessionFactory" 所幸,Spring提供了一种可定义由工厂方法所产生的bean的方式。 <bean id="sessionFactory" 这种方式,当我们需要得到sessionFacotry的bean时,Spring就会从com.sarkuya.hibernate.util.HibernateUtil的getSessionFactory()方法中获得。这种方式,我们最熟悉不过了: public class HibernateUtil { 好了,以上步骤,我们已经成功地将sessionFactory注入组织Dao中,再注入组织Service中,根据测试先行原则,看看如何在TestCase中获取组织Service这个bean。 二,在代码中获取组织Service。 public class 组织ServiceTest extends TestCase { protected void setUp() throws Exception { public void testGet组织By名称() { 三,组织DaoImpl的代码: /* 由上可见,Hibernate的核心代码一点未变,从而在与Spring整合的基础上,实现了与Spring的解耦。
转自:http://hi.baidu.com/injava/blog/item/c08eaf3823f99ec3d4622528.html
|
相关推荐
Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA企业级项目实战
回顾这一路,你会发现这些框架背后藏着共同的设计思想:约定优于配置:少写XML,多用注解松耦合:IoC让组件之间彼此无知横切分离:AOP把通用逻辑抽离自动化:Spring Data JPA消灭模板代码标准化:Maven统一构建流程它们不是孤立存在的工具,而是一整套现代化Java开发的方法论。掌握它们,不只是学会几行代码,更是获得一种构建高质量系统的思维方式。所以别再说“Spring太复杂了”,试着换个角度:它是在帮你把混乱的世界变得有序啊 ❤️。
hibernate总结
对象---表:先映射再查 先映射对象,再去数据库查询 不用操作sql。纯面向对象的关系型数据库,全自动性数据库框架 一系列的Java类借口和配置文件/session/session工厂 配置文件:数据源/映射文件(理解) Java与数据库的解耦 ORM: 数据库与表的映射 hibernate:中有三个状态 瞬态对象(引用失效就会被回收new),如果跟某个连接关
SSH框架整合全攻略:从jar包到实战应用
本文还有配套的精品资源,点击获取 简介:Struts、Spring和Hibernate是Java Web开发中的核心框架,分别处理Web应用的MVC流程、后端管理和数据库操作。整合这三大框架,可形成一套功能强大的开发架构。本篇将介绍如何整合SSH框架,包括所需jar包、配置步骤和整合后的优势。开发者需要掌握Spring配置、Struts映射以及Hibernate映射,才能实...
Spring、Hibernate 解耦方法与设计模式(1)
Spring、Hibernate 解耦方法与设计模式(1) 1、Spring resource与策略模式 不同子类(如:UrlResource、ClassPathResourse...)实现同一个接口(如:Resource)中的方法(策略),不同子类对该方法的实现不同。再实现一个中间类根据注入的不同子类,调用不同子类的同名方法,策略调用者通过中间类使用不同策略。实现策略调用者与不同策
如果使用ssms连接SQLserver的时候出现无法连接到服务器。
如果使用ssms连接SQLserver的时候出现无法连接到服务器。 Lan 2020-03-29 22:11 329 人阅读 0 条评论 标题: 连接到服务器------------------------------无法连接到...
ANSYS Workbench瞬态结构分析(1)时域分析
本文围绕瞬态结构分析展开。首先阐释其概念与理论基础,涵盖控制方程及数值求解方法。接着详述在 ANSYS Workbench 中进行瞬态分析的操作流程,以音叉为例,介绍从创建分析系统、材料定义、几何处理与网格划分,到边界条件与载荷设置、求解器设置及结果后处理的各步骤。之后对分析结果进行探讨,并针对计算不收敛、计算时间过长等常见问题给出调试技巧,旨在为读者提供全面的瞬态结构分析知识与实践指导。
Hibernate阶段性总结(一)
hibernate它是一个实现对JDBC轻量级封装的ORM(对象关系映射)的框架。处于项目的持久层。主要学习它的hibernate api和hibernate.cfg.xml,对象关系映射文件 这边介绍下项目的组成部分: WEB层 业务逻辑层(调用HQL语句去操纵持久层,这样就不用去关心到底使用哪种数据库,持久层会自己去判断) DAO层 持久层(对JDBC进行轻量级封装,
从原理到实战:ARS548 4D毫米波雷达数据处理与多模态融合全解析
本文深入解析了4D毫米波雷达ARS548的工作原理与数据处理全流程。从FMCW测距测速、MIMO虚拟天线阵列到点云生成的三步FFT处理,提供了详尽的Python代码实现。文章进一步探讨了与激光雷达、相机的多模态时空对齐与融合策略,并指导如何构建用于自动驾驶感知训练的多模态标注数据集,为相关算法工程师提供了从理论到实践的完整指南。
Spring学习--实体类通过xml映射解耦
初级JAVA开发,根据工作需要,领导要求学习Spring框架,用户新项目的开发。根据近日学习心得,总结出使用spring框架流程:①新建项目(new Java project);②导入项目的依赖包,具体流程为:右击项目--Build Path--Configure Build Path--Libraries--Add External JARs。关于依赖包的说明,我下载的是4.2.8版本的spri...
算法设计与分析 0-1背包问题 动态规划解法【超详细】
0-1背包问题 问题描述 给定i个物品和一个容量为的背包,物品的重量是Wi,其价值为Vi 物品个数为i,背包容量为C。 如何选择装入背包内的物品,使得装入背包中的物品的总价值最大? 其中,每种物品只有全部装入背包或不装入背包两种选择。 物品不能分割,不能重复使用。 动态规划算法思路 首先建立一个数组B[i][c],最上面一行表示背包容量,最左边一列表示物品编号,中间填充的数值表示当当前背包容量为C...
Loupe Browser实战指南:解锁10xGenomics单细胞数据的可视化奥秘
本文提供了Loupe Browser的实战指南,帮助用户无需编程即可探索和可视化10xGenomics单细胞数据。文章详细介绍了从数据导入、界面导航到细胞亚群鉴定、差异基因分析的核心操作流程,并分享了高级技巧与避坑指南,是快速上手这一强大可视化工具的必备参考。
struts2整合spring2,hibernate3~
struts2整合spring2是通过插件的形式整合的,这也是struts2的一个优点,可插拔式的轻量级框架。可以讲Action的实例交ioc容器进行管理,这样有助于更好的分层解耦,当然也可以利用spring的自动装配注入action实例,但是通过修改 struts.objectFactoryy.spring.atuoWrie常量改变自动装配策略有个bug,就是无法修改默认的name策略。 ...
Windowns下Git环境配置-命令行方式
文章目录一、配置Git1.1 下载Git并安装1.2 配置本地Git用户名和邮箱1.3 注册GitHub二、生成本地公钥,放到GitHub上-SSH Key2.1 生成本地公钥命令2.2 查看生成的公钥2.3 在GitHub放上公钥并测试连通性三、创建项目实操四、可能出现的问题4.1.push不成功4.2.提示SSL的问题4.3.域名不能解析的问题4.4.如果github连接不上的问题 一、配置Git 1.1 下载Git并安装 Git官网 默认安装,根据需要修改安装路径 1.2 配置本地Git用户名和邮箱
struts + hibernate + spring 整体的认识
首先struts一定要用熟了 1.struts + hibernate 当struts你熟练了以后,考虑数据库用个框架的时候,用hibernate struts是MVC,那么也就是数据持久层该用hibernate hibernate正常配就行,dao自己封一个 2.struts + spring 有人说,用spring,你的春天就来了 spring为了解耦,如果你总出bug,记得一定要考虑把ac
mjlab & MimicKit 宇树 G1 人形机器人强化学习训练部署
基于mjlab框架训练Unitree G1人形机器人执行双旋踢的示例。参考动作源自Jason Peng的MimicKit项目。数据转换脚本(MimicKit pkl → mjlab csv)完整训练结果与超参数预训练ONNX检查点用于部署实体硬件部署指南⚠️ 免责声明仅用于教育目的。对于因尝试复现此处展示结果而导致的财产损失或人身伤害,我们概不负责。操作硬件时请谨慎行事并保持良好判断力。
ABAP RANGES及比较符号
RANGES *选项介绍: *1.SIGN 值为 I 和 E 。 I是包含, E是排除, 一般使用I。 2.OPTION 如果HIGH 为空 ,为单值选择 。有 EQ、NE、GT、LE、LT等逻辑操作 对于的 CP包含 NP是排除 如果HIGH 不为空 为区间选择 有BT,NB可选 *3.LOW 低值 *4.HIGH 高值 lt:less than 小于 le:less than or equal to 小于等于 eq:equal to 等于 ne:
使用struts+spring+hibernate 组装web应用
其实,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。 在构架的一开始就有很多事情要考虑。 从高处看,摆在开发者面前有很多问题:要考虑是怎样建立用户接口?在哪里处理业务逻辑? 怎样持久化的数据。 而这三层构架中,每一层都有他们要仔细考虑的。 各个层该使用什么技术? 怎样的设计能松散耦合还能灵活改变? 怎样替换某个层而不影响整体构架?应用程序如何做各种级别的业务处理(比如事务处
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
使用Spring 管理Hibernate持久层有如下优势
通过Spring 整合Hibernate ,使持久层的访问更加容易,使用Spring 管理Hibernate持久层有如下优势。·通用的资源管理: Spring 的ApplicationContext 能管理SessionFactory ,使得配置值很容易被管理和修改,无须使用Hibernate 的配置文件。·有效的Session 管理: Spring 提供了有效、简单和安全的Hibernate S
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
SSH和MVC的关系
SSH和MVC不能直接联系,对于B/S架构,Web层才存在MVC。 SSH 它就是一个架构 MVC 它是一种思想 程序从大方面分成三层:表示层、业务层、持久层;表示层也可以说是Web层,业 务层对应的是Service,持久层对应的是DAO。 Web层又分成MVC,Struts 属于Web层;Hibernate是持久层;实体对象(POJO)不 属于
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
Spring集成Hibernate 《Srping in action》阅读笔记
一,使用Hibernate模板 与hibernate进行交互的接口是org.hibernate.Session。这个Session接口提供了基本的数据访问功能,比如从数据库保存、更新、删除和加载对象。 获得Hibernate Session对象应用的标准方式是实现Hibernate的sSessionFactory接口。SessionFactory负责打开、关闭和管理Hibernate Sess...
什么是框架?常用框架有哪些?
1. 框架简介 目标 了解什么是框架 理解框架解决的问题 讲解 1.1 什么是框架 框架是整个或部分应用的可重用设计,是可定制化的应用骨架。它可以帮开发人员简化开发过程,提高开发效率。 项目里有一部分代码:和业务无关,而又不得不写的代码==>框架 项目里剩下的部分代码:实现业务功能需要的逻辑代码 简而言之,框架是一个应用系统的半成品,开发人员在框架的基础上,根据业务需求开发功能。即:别人搭台,你唱戏。 1.2 框架解决了什么问题 框架主要是解决了技术整合问题,实现了项目和具体技术的解
634



被折叠的 条评论
为什么被折叠?



