HibernateCallBack原理以及利用回调接口优化代码结构 .
来源:互联网 发布:淘宝用户说怎么设置 编辑:程序博客网 时间:2024/06/18 10:16
http://blog.csdn.net/myxx520/article/details/5767659
Hibernate 为我们提供一套很好的数据持久化解决方案,同时Spring也为我们封装了很多模板方法,比如
实现HibernateDaoSupport后得到模板操作对象以及一些回调接口,如HibernateCallback,jdbcTemplete等,这些模板方法
大大的减少了我们的代码量,同时使得代码干净明了,今天谈谈我对HibernateCallBack的理解以及应用
首先,我们定义一个回调接口,回调接口的参数是一个上下问参数
package example;import org.hibernate.Session;/** * 定义回调接口 * * @author Jack Zhang * @date 2010-07-25 */public interface CallBackInterface {public void invoke(Session obj);}
定义个一模块操作类,将Hibernate中常用的OpenSession ,CloseSession,以及一些事物处理抽取出来作为模板对象
package example;import org.hibernate.Session;import com.kiloway.equipment.utils.HibernateSessionFactory;/** * 定义模板方法 * * @author Jack Zhang */public class JdbcTemplete {// 将实体对象持久化public void persist(CallBackInterface action) {Session session = null;try {session = HibernateSessionFactory.getSession();session.beginTransaction();// 通过接口进行回调action.invoke(session);session.getTransaction().commit();} catch (Exception e) {session.getTransaction().rollback();e.printStackTrace();} finally {session.close();}}}
其中 action.invoke(session);是回调的关键,在JdbcTemplete中,action是一个接口,在实际调用过程中,使用匿名的内部类实现该接口,进行调用,如:
package example;import org.hibernate.Session;/** * @author Jack * @date 2010-07-26 * 测试回调接口 */public class Test {public static void main(String[] args) {JdbcTemplete jdbcTemplete = new JdbcTemplete();jdbcTemplete.persist(new CallBackInterface() {public void invoke(Session obj) {obj.save("OBJECT");}});}}
这样,我们就不用在每个持久化对象中定义,openSession ,closeSession等方法,可完全把这些代码放置到模板类中,不仅仅减少了代码量,同时代码也更加简洁
- HibernateCallBack原理以及利用回调接口优化代码结构
- HibernateCallBack原理以及利用回调接口优化代码结构 .
- Java回调机制以及使用HibernateCallBack()接口的好处
- 利用HibernateCallback 回调查询
- 【代码优化】学会利用“配置文件”优化我们的代码结构
- 编译原理结构框架10代码优化
- hql分页( HibernateCallback接口 )
- 关于Hibernate中HibernateCallback()的回调
- HibernateTemplate.execute(HibernateCallback action)回调方式
- 学会利用“配置文件”优化我们的代码结构
- HibernateCallback
- HibernateCallback
- HibernateCallback
- HibernateCallback()
- HibernateCallback()
- HibernateCallback()
- HibernateCallback()
- hibernateCallback
- 图的描述
- Qt转中文
- 小端模式与强制数据类型转换
- module,RSL,framework RSLs
- Android开发必备的21个免费资源和工具
- HibernateCallBack原理以及利用回调接口优化代码结构 .
- UML类图全面剖析
- My Experience with HBase Dynamic Partitioning (a.k.a. Region Splitting)
- myeclipse8.5 安装插件方法
- struts2 文件上传
- 小议大小端模式对C语言的共用体结构的影响
- #1045 - Access denied for user 'root'@'localhost' (using password: NO) 解决方法
- 非阻塞IO 和阻塞IO:
- 发送邮件组件