您的位置:首页 > 编程语言 > Java开发

spring_HibernateTemplate(Hibernate模板)_模版设计模式

2017-05-25 16:45 357 查看
Callback:回调/钩子函数

package com.bjsxt.dao.impl;

import javax.annotation.Resource;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import com.bjsxt.dao.UserDao;
import com.bjsxt.model.User;

@Component("userDaoImpl")
public class UserDaoImpl implements UserDao {
private HibernateTemplate hibernateTemplate;

public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}

@Resource(name = "hibernateTemplate")
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

@Override
public void save(User user) {
hibernateTemplate.save(user);
}

}

ps:

import org.hibernate.Session;

public interface MyHibernateCallback {
public Object doInHibernate(Session session);
}

import org.hibernate.Session;

public class MyHibernateTemplate {
public void executekWriteOperationAllowed(MyHibernateCallback callback) {
Session session = null;
try {
session = getSession();
session.beginTransaction().begin();

callback.doInHibernate(session);

session.getTransaction().commit();
} catch (Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
} finally {
if (session != null) {
session.clear();
}
}

}

private Session getSession() {
return null;
}

public void save(final Object o) {
new MyHibernateTemplate()
.executekWriteOperationAllowed(new MyHibernateCallback() {
@Override
public Object doInHibernate(Session session) {
return session.save(o);
}
});
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: