public class HibernateExecutor {

public static void main(String[] args) {
    boolean success = true;
    Transaction transaction = null;
    Configuration config = new Configuration();
    config.configure();      
    SessionFactory factory = config.buildSessionFactory();      
    Session session = factory.openSession();      
      (中略)
    try {
      list = shainDao.findShainByHQL();
      dispShain(list, "HQL");
      list = shainDao.findShainByCriteria();
      dispShain(list, "Criteria");
      transaction = session.beginTransaction();      
      busho = new Busho();
      busho.setBushoId(6);
      busho.setBushoName("商品部");
      busho.setExtensionNum(new Integer(7777));
      bushoDao.saveBusho(busho);
      list = bushoDao.findBusho();
      dispBusho(list, "挿入結果");
      busho.setExtensionNum(new Integer(8888));
      list = bushoDao.findBusho();
      dispBusho(list, "更新結果");
      bushoDao.deleteBusho(busho);
      list = bushoDao.findBusho();
      dispBusho(list, "削除結果");
    } catch(Exception e) {
    success = false;
      e.printStackTrace();
    } finally {
      if(success) {
        transaction.commit();      
      } else {
        transaction.rollback();      
      }
      session.clear();      
      factory.close();      
    }
  }

  public static void dispShain(List list, String str) {
    System.out.println("-----検索結果(" + str + ")-----");
    Shain shain = null;
    for(int i = 0; i < list.size(); i++) {
      shain = (Shain)list.get(i);
      System.out.println("社員ID = " + shain.getShainId());
      System.out.println("社員名 = " + shain.getShainName());
      System.out.println("部署名 = "
+ shain.getBusho().getBushoName());      
    }
    System.out.println("\n");
  }

      (中略)
}