hibernate session性能问题

kyousuke 2010-10-08 01:52:36
麻烦大家看下我这样写会不会带来性能影响的问题,我把所有的Service类的增删改的处理都是调用SessionUtil的process方法,这样会不会是必须等一个线程的调用完成后,另一个线程才能调用process这个方法?
原本我是在每个Service里面的增删改这样写
Session sess = SessionUtil.current();
sess.beginTransaction();
xxxx
sess.getTransaction().commit();
发现太多重复,就想出上面的处理方法,不知道会不会有性能的影响

public class SessionUtil {

public final static int ADD = 1;

public final static int DELETE = 2;

public final static int UPDATE = 3;

private static SessionFactory factory;

static {
factory = new AnnotationConfiguration().configure().buildSessionFactory();
}

public static Session current() {
return factory.getCurrentSession();
}

public static Session open() {
return factory.openSession();
}

public static void process(int type, Object obj) throws HibernateException {
Session sess = current();
sess.beginTransaction();
switch(type) {
case ADD:
sess.save(obj);
break;
case DELETE:
sess.delete(obj);
break;
case UPDATE:
sess.update(obj);
break;
}
sess.getTransaction().commit();
}
}

public class CourseService {

public void add(Course c) throws HibernateException {
SessionUtil.process(SessionUtil.ADD, c);
}

public void delete(Course c) throws HibernateException {
SessionUtil.process(SessionUtil.DELETE, c);
}

public void update(Course c) throws HibernateException {
SessionUtil.process(SessionUtil.UPDATE, c);
}

}
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小9 2010-10-08
  • 打赏
  • 举报
回复
不会的
就这
kyousuke 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 id19870510 的回复:]
Session sess = SessionUtil.current();
sess.beginTransaction();
xxxx
sess.getTransaction().commit();

===

何不用 spring的事务管理?
[/Quote]
小第我还没学spring
老师交代的这个选课系统,我也是边学hibernate边做
ycnanevol 2010-10-08
  • 打赏
  • 举报
回复
不会
回复内容太短了!
-droidcoffee- 2010-10-08
  • 打赏
  • 举报
回复
Session sess = SessionUtil.current();
sess.beginTransaction();
xxxx
sess.getTransaction().commit();

===

何不用 spring的事务管理?
24K純帥 2010-10-08
  • 打赏
  • 举报
回复
hibernatetemplate??
sound9world 2010-10-08
  • 打赏
  • 举报
回复
这里没有同步 应该不会出现楼主描述的情况。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧