Struts和hibernate为基础的注册登录系统报错怎么解决呀,请教各位大佬
package vo;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.HibernateSessionFactory;
/**
* A data access object (DAO) providing persistence and search support for User
* entities. Transaction control of the save(), update() and delete() operations
* can directly support Spring container-managed transactions or they can be
* augmented to handle user-managed Spring transactions. Each of these methods
* provides additional information for how to configure it for the desired type
* of transaction control.
*
* @see vo.User
* @author MyEclipse Persistence Tools
*/
public class UserDAO extends BaseHibernateDAO {
private static final Logger log = LoggerFactory.getLogger(UserDAO.class);
// property constants
public static final String USERNAME = "username";
public static final String PASSWORD = "password";
/**
* @param username
* @return 检查用户名是否存在
*/
public User selectRegist(String username){
try{
Session session=getSession();
Query query=session.createQuery("from User where username=?");
query.setParameter(1, username);
List list=query.list();
User user = null;
Iterator it=list.iterator();
while(it.hasNext()){
user=(User)it.next();
System.out.println(user.getUsername());
}
return user;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
/**
* @param username
* @param password
* @return 登陆检查用户名和密码,确认身份
*/
public User LoginCheck(String username,String password,String role){
System.out.println("this is LoginCheck method !");
log.debug("LoginChecking User instance");
try {
Session session = getSession();
/*Transaction tran = session.beginTransaction();*/
Query queryObject = session.createQuery("from User where username=? and password=? and role=?");
System.out.println("pass1");
queryObject.setString(0, username);
queryObject.setString(1,password);
queryObject.setString(2, role);
List list=queryObject.list();
/*tran.commit();*/
System.out.println("pass2");
User user = null;
Iterator it=list.iterator();
while(it.hasNext()){
user=(User)it.next();
//System.out.println(user.getUsername());
}
return user;
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
/**
* @param user
* 进行注册,向数据库插入数据
*/
public void saveRegist(User user){
Session session = null ;
Transaction tx=null;
try{
session = getSession();
tx=session.beginTransaction();
session.save(user);
tx.commit();
}catch(Exception e){
e.printStackTrace();
System.out.println("提交数据出错了");
if(tx!=null)tx.rollback();
}finally{
session.close();
}
}
}
LoginAction.java
package action;
import vo.User;
import vo.UserDAO;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private User user;
public User getUser() {
return user;}
public void setUser(User user) {
this.user = user;}
public String execute()throws Exception{
if((user=new UserDAO().LoginCheck(user.getUsername(), user.getPassword(),user.getRole()))==null){
return ERROR;
}
if(user.getRole()=="1"){
return "admin";
}else{
return SUCCESS;}
}
}