我的程序用了hibernate框架,在写dao中的每一个方法中都要用到hibernate,而每一次用到hibernate的时候都要捕获异常,例如:public static void save(User user) {
Session session = null;
Transaction transaction = null;
try {
session = HibernateUtils.getSession();
transaction = session.beginTransaction(); session.save(user); transaction.commit();
} catch (Exception e) {
e.printStackTrace();
if (transaction != null) {
transaction.rollback();
}
} finally {
HibernateUtils.closeSession(session);
}
}public static User get(String id) {
if (id == null || id.length() == 0) {
return null;
}
Session session = null;
Transaction transaction = null;
User user = null;
try {
session = HibernateUtils.getSession();
transaction = session.beginTransaction(); user = (User) session.get(User.class, id); transaction.commit();
} catch (Exception e) {
e.printStackTrace();
if (transaction != null) {
transaction.rollback();
}
} finally {
HibernateUtils.closeSession(session);
}
return user;
}
不知道能不能处理一下,不要每次都写这些异常捕获的句子,而又能处理这些异常?

解决方案 »

  1.   

    不用表态方法, 写个模板的设计模式 的类, 
    把 这些异常处理放到某个方法中,可以看下 spring 的 与数据库打交道的 template 类
      

  2.   

    楼主写的这些程序 都还是学习阶段的一些测试程序 ,单单都是为学习hibernate这个框架的程序
    如果你不写这些异常可以 就使用throws关键字把他抛给hibernate处理 
    如果你学习了spring以后 spring整合了hibernate框架以后 dao层的代码就没必要这么麻烦了
    直接用spring给你提供的模板就行了
    比如 添加一个用户
    public void addUser(User user){
     getHibernateTemplate().save(User);
    }
    就OK了 !就这么简单 
      

  3.   

    DAO层中的异常应该继续向上抛,抛到业务层时再处理