<session-factory> <property name="connection.username">root</property> <property name="connection.url"> jdbc:mysql://localhost:3306/test </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="myeclipse.connection.profile">MySQL</property> <property name="connection.password">root</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <mapping resource="com/lian/bean/User.hbm.xml" /> </session-factory>
<struts> <include file="struts-default.xml" /> <package name="default" extends="struts-default"> <action name="login" class="com.lian.action.LoginAction"> <interceptor-ref name="defaultStack" /> <result name="success">/success.jsp</result> <result name="error">error.jsp</result> </action> <action name="register" class="com.lian.action.RegisterAction"> <interceptor-ref name="validationWorkflowStack" /> <result name="success">success.jsp</result> <result name="error">error.jsp</result> <result name="input">register.jsp</result> </action> </package> </struts>
<filter> <filter-name>struts-cleanup</filter-name> <filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp </filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
package com.lian.util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory; public static final ThreadLocal<Session> session = new ThreadLocal<Session>(); static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } /* * 获得当前session */ public static Session getSession() throws HibernateException { Session s = (Session) session.get(); if(s ==null || !s.isOpen()){ s = sessionFactory.openSession(); session.set(s); } return s; } /* * 回滚 */ public static void rollback(Transaction tx) { try { if(tx != null) { tx.rollback(); } } catch (HibernateException e) { System.out.println("rollback faild." + e); } } /* * 关闭session */ public static void closeSession() throws HibernateException { Session s = session.get(); session.set(null); if(s != null) { s.close(); } } }
package com.lian.dao; import java.util.Iterator; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import com.lian.bean.User; import com.lian.util.HibernateUtil; public class UserDao { private Session session; private Transaction tx; public UserDao() { session = HibernateUtil.getSession(); } /* * 将User对象插入到数据库中 * @param user */ public void create(User user) { try { tx = session.beginTransaction(); session.save(user); tx.commit(); } catch (HibernateException e) { HibernateUtil.rollback(tx); } finally { HibernateUtil.closeSession(); } } public void delete(User user) { try { tx = session.beginTransaction(); session.delete(user); tx.commit(); } catch (HibernateException e) { HibernateUtil.rollback(tx); } finally { HibernateUtil.closeSession(); } } public User find(int id) { User user = null; tx = session.beginTransaction(); user = (User) session.get(User.class, id); tx.commit(); HibernateUtil.closeSession(); return user; } public void update(User user) { tx = session.beginTransaction(); session.update(user); tx.commit(); HibernateUtil.closeSession(); } public boolean check(User user) { tx = session.beginTransaction(); String sql = "select u.password from User u where u.username='" +user.getUsername()+ "'"; List list = session.createQuery(sql).list(); if(!list.isEmpty()) { Iterator it = list.iterator(); while(it.hasNext()) { String get = (String) it.next(); System.out.println(get); if(get.equals(user.getPassword())) { HibernateUtil.closeSession(); return true; } } } HibernateUtil.closeSession(); return false; } }
<hibernate-mapping> <class name="com.lian.bean.User" table="users"> <id name="id" column="id" type= "java.lang.Long"> <generator class="native" /> </id> <property name="username" column="username" type="java.lang.String" /> <property name="password" column="password" type="java.lang.String" /> </class> </hibernate-mapping>
package com.lian.action; import com.lian.bean.User; import com.lian.dao.UserDao; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private long id; private String username; private String password; @Override public String execute() throws Exception { UserDao userDao = new UserDao(); User user = new User(); user.setUsername(username); user.setPassword(password); if(userDao.check(user)) { return SUCCESS; } return ERROR; } public long getId() { return id; } public void setId(long id) { this.id = id; } 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; } }