您的位置:首页 > 编程语言 > Java开发

Hibernate+Struts2实现简单登录注册

2014-06-11 14:59 316 查看


Hibernate+Struts2实现简单登录注册

Hibernate.cfg.xml代码


<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.xml代码


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

Web.xml代码


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

Hibernateutil代码


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();

}

}

}

Userdao.java代码


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;

}

}

User.hbm.xml代码


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

Loginaction.java代码


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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: