`

模版方法模式 模仿Spring封装Hibernate 的try catch

阅读更多

Template Method Pattern(模版方法模式)定义:定义一个操作中方法的骨架,以将一些步骤延缓到子类中实现,模版方法让子类重新定义一个方法的某些步骤而无须改变方法的结构。

其中类与对象的关系为:

     AbstractClass:抽象类

          定义一个抽象原始的操作,其子类可以重定义他的实现

    ConcreteClass:具体子类

          实现原始的操作以完成子类特定方法的步骤

下面就是一个简单的例子(模仿Spring封装Hibernate 的try catch):

AbstractClass:抽象类

import org.hibernate.Session;


public interface MyHibernateCallback {
	public void doInHibernate(Session s);
}

 

ConcreteClass:具体子类

import org.hibernate.Session;

/**
 * 这是一个模版,模仿Spring封装Hibernate 的try catch
 * @author Administrator
 *
 */
public class MyHibernateTemplate {
	
	//传一个接口
	public void executeWithNativeSession(MyHibernateCallback callback){
		Session s = null;
		try{
			s = getSession();
			s.beginTransaction();
			
			//执行接口的方法,这样那个类要是实现了这个接口就得实现这方法就相当把这方法插到了此处
			callback.doInHibernate(s);
			
			s.getTransaction().commit();
			
		}catch(Exception e){
			s.beginTransaction().rollback();
		}finally{
			
		}
		
	}

	private Session getSession() {
		return null;
	}
	
	//使用此模版
	public void save(final Object o){
		new MyHibernateTemplate().executeWithNativeSession(new MyHibernateCallback() {
			@Override
			public void doInHibernate(Session s) {
				s.save(o);
			}
		});
	}
	
}

 

 

分享到:
评论

相关推荐

    ssh(structs,spring,hibernate)框架中的上传下载

     TfileDAOHibernate通过扩展Spring提供的Hibernate支持类HibernateDaoSupport而建立,HibernateDaoSupport封装了HibernateTemplate,而HibernateTemplate封装了Hibernate所提供几乎所有的的数据操作方法,如execute...

    java_spring_day05.pdf

    在Java Spring框架的学习过程中,SSH(Struts + Spring + Hibernate)的整合是一个重要的环节。本课程主要介绍如何使用注解的方式来进行SSH整合,这种方式可以减少XML配置的复杂度,并且更符合现代软件开发的趋势。 ...

    Java知识体系精解

    行为模式包括迭代器模式、观察者模式、模板方法模式、命令模式、状态模式、策略模式、职责链模式、中介者模式、访问者模式、解释器模式和备忘录模式等,用于解决对象间的通信问题。结构模式则包括适配器模式、桥接...

    java面试题库

    - 行为型模式:责任链、命令、解释器、迭代器、访问者、备忘录、状态、策略、模板方法、观察者模式等。 6. **框架**: - Spring框架:IoC容器、AOP、MVC、Spring Boot、Spring Cloud等。 - MyBatis:SQL映射、...

    java 毕业论文最终模板

    3. **异常处理**:Java的异常处理机制是保证程序健壮性的重要部分,通过try-catch-finally语句块捕获并处理可能出现的错误,确保程序正常运行。 4. **IO流**:Java的输入输出流系统支持文件操作和网络通信,包括...

    java面试题

    8. **设计模式**:常见的设计模式有单例模式、工厂模式、建造者模式、代理模式、装饰器模式、观察者模式、策略模式、模板方法模式等,理解其应用场景和优点。 9. **SQL**:SQL面试题主要测试数据库的基本操作,如...

    java面试真题.rar

    - 工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、桥接模式、责任链模式、策略模式、状态模式、访问者模式、命令模式、模板方法模式、备忘录模式、组合模式、享元模式等23种设计...

    java面试宝典

    7. **设计模式**:熟悉23种设计模式中的常见模式,如单例模式、工厂模式、建造者模式、抽象工厂模式、代理模式、装饰模式、适配器模式、桥接模式、组合模式、装饰模式、策略模式、模板方法模式、观察者模式、迭代器...

    Core Java心得笔记

    7. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块来捕获和处理运行时错误。异常类层次结构使得错误分类更加明确。 8. **集合框架**:Java集合框架包括List(如ArrayList, LinkedList)、Set...

    Java面试题及答案大全(2023持续更新)

    Java面试题涵盖了许多核心领域,包括Java基础、容器、多线程、反射、对象拷贝、Java Web、异常处理、网络编程、设计模式、Spring框架、Spring Boot与Spring Cloud、Hibernate、MyBatis、消息队列如RabbitMQ和Kafka、...

    JAVA 经典大全(从基础到框架)

    6. **设计模式**:设计模式是解决软件开发中常见问题的模板,如单例模式、工厂模式、观察者模式等,掌握设计模式有助于编写可维护、可扩展的代码。 7. **Struts框架**:Struts是一个基于MVC(Model-View-Controller...

    Java面试题汇总

    Java作为一门广泛使用的编程语言,其面试题涵盖了众多领域,包括基础语法、面向对象、集合框架、多线程、异常处理、JVM内存模型、IO流、网络编程、设计模式、数据库操作、Spring框架、Hibernate、MyBatis、微服务、...

    JAVA面试题集锦大全宝典

    - 模板方法模式、装饰器模式、适配器模式在实际开发中的应用。 7. **JVM** - 垃圾收集:理解不同GC算法,如Minor GC、Major GC、Full GC。 - 内存模型:JVM内存结构,包括堆、栈、方法区、本地方法栈和程序...

    2011 广州 面试笔试题:.doc

    6. 三大框架Struts、Spring和Hibernate通常使用的版本分别是Struts2.18、Hibernate3.64和Spring2.53,但现代应用中可能使用更高版本或自定义封装。 7. Struts负责Web层交互,Hibernate处理数据层,Spring提供IOC和...

    java程序员 面试宝典

    - 模板方法模式、装饰器模式在实际项目中的应用。 7. **框架知识**: - Spring框架:IoC(控制反转)和AOP(面向切面编程)的概念。 - Spring Boot:快速开发工具,自动配置和起步依赖的理解。 - MyBatis或...

    java后端-面试笔记和面试资料

    3. 行为型模式:策略、模板方法、观察者、迭代器、责任链、命令、解释器、备忘录、状态、访问者模式。 七、框架与工具 1. Spring框架:依赖注入、AOP、SpringMVC、Spring Boot、Spring Cloud等。 2. MyBatis:ORM...

    JAVASE学习笔记

    异常是一种特殊的对象,可以通过try-catch-finally语句块来捕获和处理,提高代码的健壮性。 6. **线程**(马士兵_J2SE第九章_线程_个人学习笔记.doc):Java提供了多线程支持,线程是程序的并发执行单元。理解线程...

    java SOURSE

    - 异常处理:Java提供了try-catch-finally语句块来捕获和处理异常,保证程序的健壮性。 - 内存管理:Java通过垃圾回收机制自动进行内存清理,程序员无需手动释放内存。 - 多线程:Java提供了Thread类和Runnable...

    自己总结的元动力java教程的文档

    3. **异常处理**:理解和使用try-catch-finally结构,以及不同类型的异常。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等容器的使用。 5. **IO流**:输入输出操作,包括文件读写、网络流、对象序列...

    JAVA 程序员面试宝典最新

    2. 模板方法模式、策略模式、观察者模式等行为设计模式。 3. 组合模式、适配器模式、桥接模式等结构设计模式。 六、数据库相关 1. SQL语言:掌握SQL的基本操作,如增删改查、联接查询、子查询、事务处理等。 2. ...

Global site tag (gtag.js) - Google Analytics