• 為了方便取得SessionFactory實例,可撰寫一個test.com.util .HibernateUtil類別:

    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();

        }

    }


  • 接下來撰寫一個測試的程式test.com.web.TestAction.java:

    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);

        }

    }


  • test.com.delegate.TestDelegate.java:

    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));

            }

        }

    }


  • test.com.bo.TestBO.java:

    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);

        }

    }


  • test.com.dao.TestDAO.java:

    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,相當於開啟JDBCConnection

        Session session = HibernateUtil.getSessionFactory().openSession();

        // Transaction表示一組會話操作

        Transaction tx = session.beginTransaction();

        // 將物件映射至資料庫表格中儲存

        session.save (user);

        tx.commit ();

        session.close ();

        System.out.println ("新增資料OK!請先用MySQL觀看結果!");

        HibernateUtil.shutdown ();

        }

    }

  • arrow
    arrow
      全站熱搜
      創作者介紹
      創作者 楊 bey kuen 的頭像
      楊 bey kuen

      楊 bey kuen的部落格

      楊 bey kuen 發表在 痞客邦 留言(0) 人氣()