首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate和struts开发时注意的有关问题

2012-10-28 
hibernate和struts开发时注意的问题利用struts和hibernate在开发项目时,应该清楚hibernate和struts的工作

hibernate和struts开发时注意的问题
    利用struts和hibernate在开发项目时,应该清楚hibernate和struts的工作原理和方式。自己是菜菜鸟,高手略过了,可以提下建议。
    hibernate的工作方式:
    核心:Session,SessionFactory,configuration。相应的操作:在MyEclipse中,先添加hibernate capabilities,然后在Database Explore中,建立连接后经过反向工程后,对数据库的表进行映射处理。
    struts1:
    关键:添加相应的jar包,配置web.xml和struts.config.xml文件。
   说明:
    在struts+hibernate时要注意,在相关的action(LoginactionaAtion)类中,一定要重写其构造函数LoginactionAction(){setDAO(new ...DAO)},注意要把操作类(DAO)的对象初始化,以便操作类进行相关操作。如果没有配置,tomcat会包空指针错误。下面应该简单的例子,可以参考下。
    register1.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
  <title>JSP for Register1Form form</title>
</head>
<body>
  <html:form action="/register1">
   password : <html:password property="password"/><html:errors property="password"/><br/>
   username : <html:text property="username"/><html:errors property="username"/><br/>
   <html:submit/><html:cancel/>
  </html:form>
</body>
</html>

Register1Action.java

package com.yourcompany.struts.action;

import hibernateDao.Sstest;
import hibernateDao.SstestDAO;

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.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Transaction;

import com.yourcompany.struts.form.Register1Form;

public class Register1Action extends Action {
//数据dao
SstestDAO sd;
public Register1Action() {
  // TODO Auto-generated constructor stub
  setSd(new SstestDAO());
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  Register1Form register1Form = (Register1Form) form;// TODO Auto-generated method stub
  //输出客户端的用户名
  response.setCharacterEncoding("GB2312");
  System.out.println("register1Form.name\t"+register1Form.getUsername());
  /*
   * 数据库操作
   * */
Sstest st = new Sstest();
  st.setUsername(register1Form.getUsername());
  st.setPassword(register1Form.getPassword());
  //dao对象
  SstestDAO sd = getSd();
  Transaction tran = sd.getSession().beginTransaction(); //开始事务
  sd.save(st);
  tran.commit();
  //请求转发到success
  return mapping.findForward("success");
}
//数据dao,get,set方法
public void setSd(SstestDAO sd) {
  this.sd = sd;
}
public SstestDAO getSd() {
  return sd;
}
}
代码其余部分自动生成,绿色部分为hibernate数据库相关操作。
   

热点排行