package test.com.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { getSessionFactory().close(); } } |
package test.com.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward; import test.com.delegate.TestDelegate; import test.com.model.UserModel;
public class TestAction extends org.apache.struts.action.Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { /* * declare variable */ String forward = "testjsp"; String name = null; String age = null; UserModel usermod = null;
/* * get value */ name = request.getParameter("name"); age = request.getParameter("age"); usermod = new UserModel(); /* * call delegate */ usermod.setName(name); usermod.setAge(age); TestDelegate.creatUser(usermod); /* * set value */ request.setAttribute("result", usermod); /* * forward */ return mapping.findForward(forward); } } |
package test.com.delegate;
import test.com.bo.TestBO; import test.com.model.UserModel; public class TestDelegate { public static void creatUser(UserModel user) { try { TestBO.creatUser(user); } catch (Exception ex) { //logger.error(ExceptionUtils.getStackTrace(ex)); } } } |
package test.com.bo; import org.hibernate.tool.hbm2x.DAOExporter; import test.com.dao.TestDAO; import test.com.model.UserModel; public class TestBO { public static void creatUser(UserModel user) { TestDAO.creatUser(user); } } |
package test.com.dao; import org.hibernate.Session; import org.hibernate.Transaction; import test.com.model.UserModel; import test.com.util.HibernateUtil; public class TestDAO { // create public static void creatUser(UserModel user){ // 開啟Session,相當於開啟JDBC的Connection Session session = HibernateUtil.getSessionFactory().openSession(); // Transaction表示一組會話操作 Transaction tx = session.beginTransaction(); // 將物件映射至資料庫表格中儲存 session.save (user); tx.commit (); session.close (); System.out.println ("新增資料OK!請先用MySQL觀看結果!"); HibernateUtil.shutdown (); } } |