usermngrStrutsHibernate项目源码

来源:互联网 发布:手机淘宝怎样用信用卡 编辑:程序博客网 时间:2024/06/04 20:24

一.struts配置xml代码:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <constant name="struts.enable.DynamicMethodInvocation" value="true" />
 <constant name="struts.devMode" value="true" />
 <constant name="struts.action.extension" value="html"></constant>

 <package name="usermngr" extends="struts-default">
  <action name="login">
   <result>/WEB-INF/page/login.jsp</result>
  </action>

  <action name="user_search">
   <result>/WEB-INF/page/usermngr/user_search.jsp</result>
  </action>

  <action name="user_reg">
   <result>/WEB-INF/page/usermngr/user_reg.jsp</result>
  </action>
  
  <action name="error">
   <result>/WEB-INF/page/common/notlogin.jsp</result>
  </action>

  <action name="loginuser" class="com.ibm.etp.action.LoginAction"
   method="login">
   <result type="chain">user_search</result>
   <result name="useriderror">/WEB-INF/page/common/usererror.jsp</result>
   <result name="passworderror">/WEB-INF/page/common/loginerror.jsp</result>
   <result name="invalid.token">/WEB-INF/page/common/logintokenerror.jsp</result>

   <interceptor-ref name="defaultStack" />
   <interceptor-ref name="token"></interceptor-ref>
  </action>


  <action name="search" class="com.ibm.etp.action.UserSearchAction"
   method="search">
   <result type="chain">user_search</result>
  </action>

  <action name="logout" class="com.ibm.etp.action.LogoutAction">
   <result type="chain">login</result>
  </action>

  <action name="user_edit" class="com.ibm.etp.action.UserEditAction"
   method="init">
   <result>/WEB-INF/page/usermngr/user_edit.jsp</result>
  </action>

  <action name="useredit" class="com.ibm.etp.action.UserEditAction">
   <result type="redirectAction">user_search</result>
  </action>

  <action name="userreg" class="com.ibm.etp.action.UserRegAction">
   <result type="redirectAction">user_search</result>
   <result name="input">/WEB-INF/page/usermngr/user_reg.jsp</result>
  </action>


  <!--
  <action name="" class=""
   method="">
   <result type=""></result>
  </action>
   -->

 </package>
</struts>
二.Action代码:

1.loginAction

package com.ibm.etp.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.ibm.etp.dao.UserDao;
import com.ibm.etp.vo.LoginVO;
import com.opensymphony.xwork2.ActionSupport;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2011, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2011-10-27 IBM   zxc       create
 */
public class LoginAction extends ActionSupport implements ServletRequestAware{
 private LoginVO loginVO;
 
 private HttpServletRequest request;
 
 public LoginVO getLoginVO() {
  return loginVO;
 }

 public void setLoginVO(LoginVO loginVO) {
  this.loginVO = loginVO;
 }

 public String login() {
  if (!UserDao.isUseridAvailable(loginVO.getUserid())) {
   return "useriderror";
  } else if (!UserDao.isLogin(loginVO.getUserid(), loginVO.getPassword())) {
   return "passworderror";
  } else {
   String username = UserDao.getUsername(loginVO.getUserid());
   UserDao.setOnline(loginVO.getUserid());
   
   HttpSession session = request.getSession();
   session.setAttribute("userid", loginVO.getUserid());
   session.setAttribute("username", username);
  }
  return SUCCESS;
 }

 public void setServletRequest(HttpServletRequest arg0) {
  request = arg0;
 }
 
}

2.LogoutAction

package com.ibm.etp.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.ibm.etp.dao.UserDao;
import com.opensymphony.xwork2.ActionSupport;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2011, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2011-11-2 IBM   zxc     create
 */
public class LogoutAction extends ActionSupport implements ServletRequestAware{

 private HttpServletRequest request = null;
 
 public String execute() throws Exception {
  String userid = (String) request.getSession().getAttribute("userid");
  if (userid != null) {
   UserDao.logout(userid);
  }
  HttpSession session = request.getSession();
  session.removeAttribute("userid");
  session.removeAttribute("username");

  return SUCCESS;
 }

 public void setServletRequest(HttpServletRequest arg0) {
  request = arg0;
 }
 
}

3.UserEditAction

package com.ibm.etp.action;

import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.ibm.etp.dao.UserDao;
import com.ibm.etp.hibernate.pojo.TUser;
import com.opensymphony.xwork2.ActionSupport;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2011, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2011-11-2 IBM   zxc     create
 */
public class UserEditAction extends ActionSupport implements
  ServletRequestAware {

 private String userid;
 
 private String username;
 
 private String password;
 
 private String confirmpassword;
 
 private String email;

 private HttpServletRequest request;

 public String init() throws Exception {
  userid = (String) request.getSession().getAttribute("userid");
  if(userid != null) {
   TUser tUser = UserDao.getUserinfo(userid);
   username = tUser.getUserName();
   email = tUser.getUserMailaddress();
  }
  return SUCCESS;
 }
 
 public String execute() {
  UserDao.useredit(userid, username, confirmpassword, email);
  return SUCCESS;
 }

 public void setServletRequest(HttpServletRequest arg0) {
  request = arg0;
 }

 public String getUserid() {
  return userid;
 }

 public void setUserid(String userid) {
  this.userid = userid;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String getConfirmpassword() {
  return confirmpassword;
 }

 public void setConfirmpassword(String confirmpassword) {
  this.confirmpassword = confirmpassword;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }
 
}

 

4.UserAgeAction

package com.ibm.etp.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.ibm.etp.dao.UserDao;
import com.opensymphony.xwork2.ActionSupport;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2011, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2011-11-2 IBM   zxc     create
 */
public class UserRegAction extends ActionSupport implements ServletRequestAware{
 private String userid;
 
 private String username;
 
 private String password;
 
 private String confirmpassword;
 
 private String email;
 
 private HttpServletRequest request;

 public String execute() throws Exception {
  if (UserDao.hasUserid(userid)) {
   this.addActionError("用户ID已存在");
   return INPUT;
  }
  UserDao.userreg(userid, username, confirmpassword, email);
  request.getSession().setAttribute("userid", userid);
  request.getSession().setAttribute("username", username);
  
  return SUCCESS;
 }

 public String getUserid() {
  return userid;
 }

 public void setUserid(String userid) {
  this.userid = userid;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String getConfirmpassword() {
  return confirmpassword;
 }

 public void setConfirmpassword(String confirmpassword) {
  this.confirmpassword = confirmpassword;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 public void setServletRequest(HttpServletRequest arg0) {
  request = arg0;
 }
 
}

5.UserSearchAction

package com.ibm.etp.action;

import java.util.ArrayList;
import java.util.List;

import com.ibm.etp.dao.UserDao;
import com.ibm.etp.hibernate.pojo.TUser;
import com.ibm.etp.vo.UserSearchResultVO;
import com.opensymphony.xwork2.ActionSupport;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2011, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2011-10-31 IBM   zxc     create
 */
public class UserSearchAction extends ActionSupport {
 private String userid;
 
 private String username;
 
 private List<UserSearchResultVO> result = new ArrayList<UserSearchResultVO>();
 
 public String search() {
  List result = UserDao.search(userid, username);
  for (int i = 0; i < result.size(); i++) {
   Object[] objects = (Object[]) result.get(i);
   TUser tUser = (TUser) objects[0];
   UserSearchResultVO resultVO = new UserSearchResultVO();
   resultVO.setUserid(tUser.getUserId());
   resultVO.setUsername(tUser.getUserName());
   resultVO.setEmail(tUser.getUserMailaddress());
   resultVO.setStatusName(tUser.getTStatus().getStatusName());
   this.result.add(resultVO);
  }
  return SUCCESS;
 }

 public String getUserid() {
  return userid;
 }

 public void setUserid(String userid) {
  this.userid = userid;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public List getResult() {
  return result;
 }

 public void setResult(List result) {
  this.result = result;
 }
 
}

二.ADO

UserAdo

package com.ibm.etp.dao;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.ibm.etp.common.dao.DBConnection;
import com.ibm.etp.hibernate.pojo.TStatus;
import com.ibm.etp.hibernate.pojo.TUser;
import com.ibm.etp.hibernate.util.HibernateSessionFactory;

/**
 * <dl>
 * <dt><b>类机能概要:</b></dt><dd>
 *
 * </dd>
 * </dl>
 * @copyright :Copyright 2012, IBM ETP. All right reserved.
 *【Update History】
 * Version Date  Company  Name   Anken-No Anken-Name
 * ------- ---------- ---------- -------------- ---------- ------------
 * 1.00  2012-4-10 IBM   zxc     create
 */
public class UserDao {
 public static boolean isUseridAvailable(String userid) {
  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser t where t.userId = :userId";
   Query query = session.createQuery(hql);
   query.setString("userId", userid);

   result = query.list();

   transaction.commit();

   if (result.size() > 0) {
    TUser tUser = (TUser) result.get(0);
    if ("2".equals(tUser.getTStatus().getStatusId())) {
     return true;
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
  return false;
 }

 public static boolean hasUserid(String userid) {
  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser t where t.userId = :userid";
   Query query = session.createQuery(hql);
   query.setString("userid", userid);

   result = query.list();
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }

  if (result != null && result.size() > 0) {
   return true;
  }
  return false;
 }

 public static boolean isLogin(String userid, String password) {

  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser t where t.userId = :userid and trim(t.userPwd) = :password";
   Query query = session.createQuery(hql);
   query.setString("userid", userid);
   query.setString("password", password);

   result = query.list();
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }

  if (result.size() > 0) {
   return true;
  }
  return false;
 }

 public static String getUsername(String userid) {
  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser t where t.userId = :userid";
   Query query = session.createQuery(hql);
   query.setString("userid", userid);

   result = query.list();
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
  TUser tUser = (TUser) result.get(0);
  return tUser.getUserName();
 }

 public static void setOnline(String userid) {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String sql = "update t_user t set t.status_id = '1' where t.user_id = :userid";

   Query query = session.createSQLQuery(sql);
   query.setString("userid", userid);
   query.executeUpdate();

   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }

 public static TUser getUserinfo(String userid) {
  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser t where t.userId = :userid";
   Query query = session.createQuery(hql);
   query.setString("userid", userid);

   result = query.list();
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
  return (TUser) result.get(0);
 }

 public static List search(String userid, String username) {
  List result = null;
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "from TUser tu, TStatus ts where ts.statusId = tu.TStatus.statusId and tu.userId like :userid and tu.userName like :username";
   Query query = session.createQuery(hql);
   query.setString("userid", "%" + userid + "%");
   query.setString("username", "%" + username + "%");

   result = query.list();
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
  return result;
 }

 public static void logout(String userid) {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String sql = "update t_user t set t.status_id = '2' where t.user_id = :userid";
   Query query = session.createSQLQuery(sql);
   query.setString("userid", userid);
   query.executeUpdate();

   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }

 public static void logoutall() {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String sql = "update t_user set status_id = '2' where status_id = '1'";

   Query query = session.createSQLQuery(sql);
   query.executeUpdate();

   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }

 public static void useredit(String userid, String username,
   String password, String email) {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   String hql = "update TUser t set t.userName = :username, t.userPwd = :password, t.userMailaddress = :email where t.userId = :userid";

   Query query = session.createQuery(hql);
   query.setString("userid", userid);
   query.setString("username", username);
   query.setString("password", password);
   query.setString("email", email);
   query.executeUpdate();

   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }

 public static void userreg(String userid, String username, String password,
   String email) {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();

   TStatus status = (TStatus) session.load(TStatus.class, "1");

   TUser tUser = new TUser(userid, status, username, password, email);

   session.save(tUser);
   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }
 
 public static void userDelete(String userid) {
  Session session = HibernateSessionFactory.getSession();
  Transaction transaction = null;
  try {
   transaction = session.beginTransaction();
   
   String hql = "delete TUser t where t.userId = :userid";

   Query query = session.createQuery(hql);
   query.setString("userid", userid);

   query.executeUpdate();

   transaction.commit();
  } catch (Exception e) {
   e.printStackTrace();
   transaction.rollback();
  } finally {
   session.close();
  }
 }
}

 

三、Hibernate xml 配置

 

TStatus.hbm:

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2011-11-2 22:34:12 by Hibernate Tools 3.3.0.GA -->
<hibernate-mapping>
    <class name="com.ibm.etp.hibernate.pojo.TStatus" table="T_STATUS" schema="USERMNGR">
        <id name="statusId" type="java.lang.String">
            <column name="STATUS_ID" length="1" />
            <generator class="assigned" />
        </id>
        <property name="statusName" type="string">
            <column name="STATUS_NAME" length="20" not-null="true" />
        </property>
        <set name="TUsers" table="T_USER" inverse="true" lazy="true" fetch="select">
            <key>
                <column name="STATUS_ID" length="1" />
            </key>
            <one-to-many class="com.ibm.etp.hibernate.pojo.TUser" />
        </set>
    </class>
</hibernate-mapping>

 

TUser.hbm

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2011-11-2 22:34:12 by Hibernate Tools 3.3.0.GA -->
<hibernate-mapping>
    <class name="com.ibm.etp.hibernate.pojo.TUser" table="T_USER" schema="USERMNGR">
        <id name="userId" type="string">
            <column name="USER_ID" length="8" />
            <generator class="assigned" />
        </id>
        <many-to-one name="TStatus" class="com.ibm.etp.hibernate.pojo.TStatus" fetch="select">
            <column name="STATUS_ID" length="1" />
        </many-to-one>
        <property name="userName" type="string">
            <column name="USER_NAME" length="20" not-null="true" />
        </property>
        <property name="userPwd" type="string">
            <column name="USER_PWD" length="32" not-null="true" />
        </property>
        <property name="userMailaddress" type="string">
            <column name="USER_MAILADDRESS" length="30" />
        </property>
    </class>
</hibernate-mapping>

 

四、HibernateSessionFactory

package com.ibm.etp.hibernate.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;

/**   
 * Configures and provides access to Hibernate sessions, tied to the current   
 * thread of execution. Follows the Thread Local Session pattern, see   
 * {@link http://hibernate.org/42.html }.   
 */   

public class HibernateSessionFactory {

 /**
  * Location of hibernate.cfg.xml file. Location should be on the classpath
  * as Hibernate uses #resourceAsStream style lookup for its configuration
  * file. The default classpath location of the hibernate config file is in
  * the default package. Use #setConfigFile() to update the location of the
  * configuration file for the current session.
  */

 private static String CONFIG_FILE_LOCATION = "/com/ibm/etp/hibernate/cfg/hibernate.cfg.xml";

 private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

 private static Configuration configuration = new Configuration();

 private static org.hibernate.SessionFactory sessionFactory;

 private static String configFile = CONFIG_FILE_LOCATION;

 static {
  try {
   configuration.configure(configFile);
   sessionFactory = configuration.buildSessionFactory();
  } catch (Exception e) {
   System.err.println("%%%% Error Creating SessionFactory %%%%");
   e.printStackTrace();
  }
 }

 private HibernateSessionFactory() {
 }

 /**
  * Returns the ThreadLocal Session instance. Lazy initialize the
  * <code>SessionFactory</code> if needed.
  *
  * @return Session
  * @throws HibernateException
  */
 public static Session getSession() throws HibernateException {
  Session session = (Session) threadLocal.get();
  if (session == null || !session.isOpen()) {
   if (sessionFactory == null) {
    rebuildSessionFactory();
   }
   if (sessionFactory != null) {
    session = sessionFactory.openSession();
   }
   threadLocal.set(session);
  }
  return session;
 }

 /**
  * Rebuild hibernate session factory
  *
  */
 public static void rebuildSessionFactory() {
  try {
   configuration.configure(configFile);
   sessionFactory = configuration.buildSessionFactory();
  } catch (Exception e) {
   System.err.println("%%%% Error Creating SessionFactory %%%%");
   e.printStackTrace();
  }
 }

 /**
  * Close the single hibernate session instance.
  *
  * @throws HibernateException
  */
 public static void closeSession() throws HibernateException {
  Session session = (Session) threadLocal.get();
  threadLocal.set(null);

  if (session != null) {
   session.close();
  }
 }

 /**
  * return session factory
  *
  */
 public static org.hibernate.SessionFactory getSessionFactory() {
  return sessionFactory;
 }

 /**
  * return session factory
  *
  * session factory will be rebuilded in the next call
  */
 public static void setConfigFile(String configFile) {
  HibernateSessionFactory.configFile = configFile;
  sessionFactory = null;
 }

 /**
  * return hibernate configuration
  *
  */
 public static Configuration getConfiguration() {
  return configuration;
 }

}

 

五、hibernate.cfg

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="sessionFactory">
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.password">123</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
  <property name="hibernate.connection.username">usermngr</property>
  <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <mapping resource="com/ibm/etp/hibernate/xml/TUser.hbm.xml" />
  <mapping resource="com/ibm/etp/hibernate/xml/TStatus.hbm.xml" />
 </session-factory>
</hibernate-configuration>

 

 

 

原创粉丝点击