Hibernate+Struts2实现简单登录注册

来源:互联网 发布:王奔宏的淘宝店 编辑:程序博客网 时间:2024/06/01 07:56
Hibernate.cfg.xml代码 

  1. <session-factory>   
  2.     <property name="connection.username">root</property>   
  3.     <property name="connection.url">   
  4.         jdbc:mysql://localhost:3306/test   
  5.     </property>   
  6.     <property name="dialect">   
  7.         org.hibernate.dialect.MySQLDialect   
  8.     </property>   
  9.     <property name="myeclipse.connection.profile">MySQL</property>   
  10.     <property name="connection.password">root</property>   
  11.     <property name="connection.driver_class">   
  12.         com.mysql.jdbc.Driver   
  13.     </property>   
  14.        
  15.     <mapping resource="com/lian/bean/User.hbm.xml" />   
  16.   
  17. </session-factory>  

 

Struts.xml代码 复制代码 收藏代码
  1. <struts>   
  2.     <include file="struts-default.xml" />   
  3.     <package name="default" extends="struts-default">   
  4.         <action name="login" class="com.lian.action.LoginAction">   
  5.             <interceptor-ref name="defaultStack" />   
  6.             <result name="success">/success.jsp</result>   
  7.             <result name="error">error.jsp</result>   
  8.         </action>   
  9.            
  10.         <action name="register" class="com.lian.action.RegisterAction">   
  11.             <interceptor-ref name="validationWorkflowStack" />   
  12.             <result name="success">success.jsp</result>   
  13.             <result name="error">error.jsp</result>   
  14.             <result name="input">register.jsp</result>   
  15.         </action>   
  16.            
  17.     </package>   
  18. </struts>  

 

Web.xml代码 


  1. <filter>   
  2.         <filter-name>struts-cleanup</filter-name>   
  3.         <filter-class>   
  4.             org.apache.struts2.dispatcher.ActionContextCleanUp   
  5.         </filter-class>   
  6.     </filter>   
  7.   
  8.     <filter-mapping>   
  9.         <filter-name>struts-cleanup</filter-name>   
  10.         <url-pattern>/*</url-pattern>   
  11.     </filter-mapping>   
  12.   
  13.     <filter>   
  14.         <filter-name>struts2</filter-name>   
  15.         <filter-class>   
  16.             org.apache.struts2.dispatcher.FilterDispatcher   
  17.         </filter-class>   
  18.     </filter>   
  19.   
  20.     <filter-mapping>   
  21.         <filter-name>struts2</filter-name>   
  22.         <url-pattern>/*</url-pattern>   
  23.     </filter-mapping>  

 

Hibernateutil代码 


  1. package com.lian.util;   
  2.   
  3. import org.hibernate.HibernateException;   
  4. import org.hibernate.Session;   
  5. import org.hibernate.SessionFactory;   
  6. import org.hibernate.Transaction;   
  7. import org.hibernate.cfg.Configuration;   
  8.   
  9. public class HibernateUtil {   
  10.     private static SessionFactory sessionFactory;   
  11.     public static final ThreadLocal<Session> session = new ThreadLocal<Session>();   
  12.        
  13.     static {       
  14.         try {   
  15.             sessionFactory = new Configuration().configure().buildSessionFactory();   
  16.         } catch (Throwable ex) {   
  17.             throw new ExceptionInInitializerError(ex);   
  18.         }   
  19.     }   
  20.        
  21.     /*   
  22.      * 获得当前session   
  23.      */   
  24.     public static Session getSession() throws HibernateException {   
  25.         Session s = (Session) session.get();   
  26.         if(s ==null || !s.isOpen()){   
  27.             s = sessionFactory.openSession();   
  28.             session.set(s);   
  29.         }   
  30.         return s;      
  31.     }   
  32.        
  33.     /*   
  34.      * 回滚   
  35.      */   
  36.     public static void rollback(Transaction tx) {   
  37.         try {   
  38.             if(tx != null) {   
  39.                 tx.rollback();   
  40.             }   
  41.         } catch (HibernateException e) {   
  42.             System.out.println("rollback faild." + e);   
  43.         }   
  44.     }   
  45.        
  46.     /*   
  47.      * 关闭session   
  48.      */   
  49.     public static void closeSession() throws HibernateException {   
  50.         Session s = session.get();   
  51.         session.set(null);   
  52.         if(s != null) {   
  53.             s.close();   
  54.         }   
  55.     }   
  56.        
  57. }  

 

Userdao.java代码 


  1. package com.lian.dao;   
  2.   
  3. import java.util.Iterator;   
  4. import java.util.List;   
  5.   
  6. import org.hibernate.HibernateException;   
  7. import org.hibernate.Session;   
  8. import org.hibernate.Transaction;   
  9.   
  10. import com.lian.bean.User;   
  11. import com.lian.util.HibernateUtil;   
  12.   
  13. public class UserDao {   
  14.   
  15.     private Session session;   
  16.     private Transaction tx;   
  17.        
  18.     public UserDao() {   
  19.         session = HibernateUtil.getSession();   
  20.     }   
  21.        
  22.     /*   
  23.      * 将User对象插入到数据库中   
  24.      * @param user   
  25.      */   
  26.     public void create(User user) {   
  27.         try {   
  28.             tx = session.beginTransaction();   
  29.             session.save(user);   
  30.             tx.commit();   
  31.         } catch (HibernateException e) {   
  32.             HibernateUtil.rollback(tx);   
  33.         } finally {   
  34.             HibernateUtil.closeSession();   
  35.         }   
  36.     }   
  37.        
  38.     public void delete(User user) {   
  39.         try {   
  40.             tx = session.beginTransaction();   
  41.             session.delete(user);   
  42.             tx.commit();   
  43.         } catch (HibernateException e) {   
  44.             HibernateUtil.rollback(tx);   
  45.         } finally {   
  46.             HibernateUtil.closeSession();   
  47.         }   
  48.     }   
  49.        
  50.     public User find(int id) {   
  51.         User user = null;   
  52.         tx = session.beginTransaction();   
  53.         user = (User) session.get(User.class, id);   
  54.         tx.commit();   
  55.         HibernateUtil.closeSession();   
  56.         return user;       
  57.     }   
  58.        
  59.     public void update(User user) {   
  60.         tx = session.beginTransaction();   
  61.         session.update(user);   
  62.         tx.commit();   
  63.         HibernateUtil.closeSession();   
  64.     }   
  65.        
  66.     public boolean check(User user) {   
  67.         tx = session.beginTransaction();   
  68.         String sql = "select u.password from User u where u.username='" +user.getUsername()+ "'";   
  69.         List list = session.createQuery(sql).list();   
  70.         if(!list.isEmpty()) {   
  71.             Iterator it = list.iterator();   
  72.             while(it.hasNext()) {   
  73.                 String get = (String) it.next();   
  74.                 System.out.println(get);   
  75.                 if(get.equals(user.getPassword())) {   
  76.                     HibernateUtil.closeSession();   
  77.                     return true;   
  78.                 }   
  79.             }   
  80.         }   
  81.         HibernateUtil.closeSession();   
  82.         return false;      
  83.     }   
  84.        
  85.        
  86. }  

 

 

User.hbm.xml代码 

  1. <hibernate-mapping>   
  2.     <class name="com.lian.bean.User" table="users">   
  3.         <id name="id" column="id" type= "java.lang.Long">   
  4.             <generator class="native" />   
  5.         </id>   
  6.         <property name="username" column="username" type="java.lang.String" />   
  7.         <property name="password" column="password" type="java.lang.String" />   
  8.     </class>   
  9. </hibernate-mapping>  

 

Loginaction.java代码 

  1. package com.lian.action;   
  2.   
  3. import com.lian.bean.User;   
  4. import com.lian.dao.UserDao;   
  5. import com.opensymphony.xwork2.ActionSupport;   
  6.   
  7. public class LoginAction extends ActionSupport {   
  8.   
  9.     private long id;   
  10.     private String username;   
  11.     private String password;   
  12.        
  13.     @Override   
  14.     public String execute() throws Exception {   
  15.         UserDao userDao = new UserDao();   
  16.         User user = new User();   
  17.         user.setUsername(username);   
  18.         user.setPassword(password);   
  19.         if(userDao.check(user)) {   
  20.             return SUCCESS;   
  21.         }   
  22.         return ERROR;   
  23.     }   
  24.   
  25.     public long getId() {   
  26.         return id;   
  27.     }   
  28.   
  29.     public void setId(long id) {   
  30.         this.id = id;   
  31.     }   
  32.   
  33.     public String getUsername() {   
  34.         return username;   
  35.     }   
  36.   
  37.     public void setUsername(String username) {   
  38.         this.username = username;   
  39.     }   
  40.   
  41.     public String getPassword() {   
  42.         return password;   
  43.     }   
  44.   
  45.     public void setPassword(String password) {   
  46.         this.password = password;   
  47.     }   
  48.        
  49. }  
原创粉丝点击