<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;
}
}