• struts1 Hibernate3初学


            说来话长,Java已经有一段时间没得到我的宠幸了,几乎都忘了它了,由于最近要去AVON实习,所以重新学了一下Java,并且学习一下Struts,hibernate,Spring,现在谈谈struts和hibernate吧。

            这几天看了一下struts的运行机制,MVC架构,重新认识了一下架构,hibernate比想象中的简单,不过struts和hibernate的运行机制和源代码都没仔细研究,就随便调试了一下,先看看能否能实现。

            下面简单说一下这个小小程序的条件:

           1、mysql5.0   http://www.mysql.org
       2、myeclipse6.5  http://www.myeclipseide.com
       3、tomcat

    传说中的tomcat+ struts+hibernate+mysql的小工程开始噜

    一、数据库 建立数据库,admin表,字段id--primary key,字段name,字段password.

     

    二、在myeclipse里new project,J2EE的javaweb工程---Test

     
    三、在新建的项目中点击右键  MyEclipse->Add struts Capabilities,添加struts1.2框架
     
     
     四、同样,增加hibernate框架,但是和struts不同的地方,MyEclipse- >Add Hibernate Capabilities…一路确定下来为你的工程添加Hibernate。(为方便起见我们在选择路径时把 HibernateSessionFactory.java放在了src/com下面,其实最好建立个单独的目录如 src/com/hibernate)
    五、下面我们再选择WebRoot/WEB-INF/struts-config.xml文件,在画面中点击右键选择new- >Form, Action and JSP。如下填写
    新建success.jsp文件,
    然后右击,点properties
     
     
    finish后应该能看到这样的关系图
    六、下面我们转到hibernate。换到刚才我们建立数据库的页面,选择你的admin的表点右键选择Create Hibernate Mapping。选择好打包路径后选择Finish。如图:
     
    生成后的文件结构
    七、刚才选择的路径下src/com/yourcompany/下新建立的文件 AdminDAOFactory.java文件并输入以下内容:
    package com.yourcompany;
    import java.util.Iterator;
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import com.HibernateSessionFactory;
    public class AdminDAOFactory {
     Session session;
     Transaction tx;
     public void add(Admin admin) throws HibernateException {
      try {
       session = HibernateSessionFactory.getSession();
       tx = session.beginTransaction();
       //Add a new admin
       session.save(admin);
       tx.commit ();
      }catch(HibernateException e){
       throw e;
      }finally{
       if (tx==null) {
        tx.rollback();
       }
       HibernateSessionFactory.closeSession();
      }
     }
    }
     

    再打开com.yourcompany.struts.action下的AddAdminAction.java添加(其中如果有错误选中好按ctrl+shift+o自动添加包)

    public class AddAdminAction extends Action {

     // --------- Instance Variables

     // ---------Methods

     public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
      AddAdminForm addAdminForm = (AddAdminForm) form;
      
      // TODO Add a new admin
      Admin admin = new Admin();
      admin.setName(addAdminForm.getName ());
      admin.setPassword(addAdminForm.getPassword ());
      AdminDAOFactory adminDAO = new AdminDAOFactory ();
      adminDAO.add(admin);
      
      return mapping.findForward("success");
     }

    }

     
    再打开com.yourcompanyname.struts.form下的AddAdminForm.java,修改(如果有错误按照上面说的方法导入包)

     public ActionErrors validate(
      ActionMapping mapping,
      HttpServletRequest request) {

      // TODO Auto-generated method stub
      ActionErrors errors = new ActionErrors();
      
      Session session = SessionFactory.currentSession();
      Transaction tx = session.beginTransaction ();
      Query query = session.createQuery("select admin from Admin as admin where admin.name = '" + this.name + "'");
      Iterator it = query.iterate ();
      if (it.hasNext()){
       errors.add ("addAdmin.err.name",new ActionMessage("form.addAdmin.err.name"));
      }
      tx.commit();
      SessionFactory.closeSession ();
      return errors;
     }

     public void reset(ActionMapping mapping, HttpServletRequest request) {

      // TODO Auto-generated method stub
      this.name=null;
      this.password=null;
     }


    再打开com\yourcompanyname\struts下的ApplicationResource.properties在这里面添加错误信息:

    Form.addAdmin.err.name=err

     

     

    好了,到此项目基本完成了,现在部署项目,然后运行一下,看看结构如何,首先部署一下,运行tomcat

     
     
    我们去看看数据库插进刚刚的数据没有?
     
     
    夜深了,下次继续研究这些框架的源代码和运行机制。。。。。
  • 相关阅读:
    Java:API文档;文档注释中的javadoc标记;官方API;自己动手给项目建一个API文档
    Java:配置环境(Mac)——MySQL
    Java:配置环境(Mac)——Tomcat
    Java:配置环境(Mac)——Eclipse;修改JDK版本后,Eclipse打不开
    Java:配置环境(Mac)——JDK
    Git:九、删除项目
    Git:修改Git Bash默认打开位置(win10)
    操作系统:diskpart常用指令(使用diskpart实现分区管理)
    人生第一次离职
    C++ std::thread概念介绍
  • 原文地址:https://www.cnblogs.com/chester/p/1987947.html
Copyright © 2020-2023  润新知