⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usermanagedaohibernateimple.java

📁 hibernate项目实践
💻 JAVA
字号:
package com.px1987.webbbs.dao;

import java.util.*;
import org.hibernate.*;
import org.hibernate.criterion.*;
import com.px1987.webbbs.exception.WebBBSException;
public class UserManageDAOHibernateImple implements UserManageDAOInterface 
{

	public UserManageDAOHibernateImple()
	{
		// TODO 自动生成构造函数存根
	}
	public boolean BatchDeleteUserInfo(ArrayList deletedUserIDs)	throws WebBBSException 
	{
		// TODO 自动生成方法存根
		return false;
	}

	public UserInfoPO SelectOneUserInfoData(String userName, String userPassWord)	throws WebBBSException 
	{
/*		
		UserInfoPO oneUserInfoPO=null;
		String HQLQuery="from com.px1987.webbbs.dao.UserInfoPO where userName='"+
							userName+"' and userPassWord='"+userPassWord+"'";
		ArrayList allUserInfoPO=selectSomeUserInfo(HQLQuery);
		if(allUserInfoPO.size()==0)
		{
			oneUserInfoPO=null;
		}
		oneUserInfoPO=(UserInfoPO)allUserInfoPO.get(0); //取最前面的一位(因为要求在数据库表中不存在同名的两个用户)
		return oneUserInfoPO;
*/
		UserInfoPO oneUserInfoPO = null;
		Session session = null;
		try
		{
			session = HibernateUtil.currentSession();
			Criteria crit = session.createCriteria(UserInfoPO.class);
			crit.add(Expression.eq("userName", userName));
			crit.add(Expression.eq("userPassWord", userPassWord));
			oneUserInfoPO = (UserInfoPO) crit.uniqueResult();
		} 
		catch (HibernateException e) 
		{
		      throw new WebBBSException("在UserManageDAOHibernateImple类中的SelectOneUserInfoData方法出现了HibernateException异常");		} finally 
		{
			HibernateUtil.closeSession();
		}
		return oneUserInfoPO;
	}
	public boolean deleteOneUserInfo(String registerUserID)	throws WebBBSException 
	{
	    boolean OKOrNot=false;
	    Session session=null;
	    Transaction tx=null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	      	UserInfoPO oneUserTODeleted=(UserInfoPO)session.get(UserInfoPO.class,registerUserID);
	      	if(oneUserTODeleted==null)
	      	{
	      		throw new WebBBSException("在数据库表中不存在指定userID="+registerUserID+"的数据顶目!");
	      	}
	        session.delete(oneUserTODeleted);
	      tx.commit();
	      OKOrNot=true;
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的deleteOneUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return OKOrNot;
	}

	public boolean insertOneUserInfo(UserInfoPO oneRegisterUserInfo)	throws WebBBSException 
	{
		  boolean OKOrNot=false;
		  Session session=null;
		  Transaction tx=null;
		  try
		  {
		    session = HibernateUtil.currentSession();
		    tx = session.beginTransaction();
/*
   注意:对于采用MS SQLServer2000的JDBC驱动程序则应该进行中文编码的转换,而采用JDTS则不需要,否则会出现中文乱码
   oneUserInfo.setUserName(new String(userName.getBytes("gb2312"),"ISO8859-1"));
*/
		    session.save(oneRegisterUserInfo);
		    tx.commit();
		    OKOrNot=true;
		  }
		  catch (HibernateException he)
		  {
		    throw new WebBBSException("在UserManageDAOHibernateImple类中的insertOneUserInfo方法出现了HibernateException异常");
		  }
		  finally
		  {
		    HibernateUtil.closeSession();
		  }
		  return OKOrNot;
	}
	public ArrayList selectAllBaseUserInfo() throws WebBBSException 
	{
		 String HQLQuery="from com.px1987.webbbs.dao.UserInfoBasePO";
		 return selectSomeBaseUserInfo(HQLQuery);
	}

	public ArrayList selectAllRegisterUserNameInfo(String userName)		throws WebBBSException 
	{
		ArrayList allRegisterUserNameInfos = new ArrayList();
		String HQLSelect="select oneUserInfoPO.userName from com.px1987.webbbs.dao.UserInfoPO oneUserInfoPO where oneUserInfoPO.userName like '"+userName+"%'";
/*	在此中查询中不能采用带参数的形式
 * 	String HQLSelect="select oneUserInfoPO.userName from com.px1987.webbbs.dao.UserInfoPO oneUserInfoPO where oneUserInfoPO.userName like '?%'";
 * 
 */
	    List selectAllUserNamesResult =null;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	      query=session.createQuery(HQLSelect);
	      selectAllUserNamesResult = query.list();
	      	 Iterator allUserNameItem=selectAllUserNamesResult.iterator();
	      	 while(allUserNameItem.hasNext())
	      	 {
	      		String oneUserNameInfo=(String)allUserNameItem.next();
	      		allRegisterUserNameInfos.add(oneUserNameInfo);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeBaseUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allRegisterUserNameInfos;

	}
	public ArrayList selectAllUserInfo() throws WebBBSException 
	{
		 String HQLQuery="from com.px1987.webbbs.dao.UserInfoPO";
		 return selectSomeUserInfo(HQLQuery);
	}

	public UserInfoPO selectOneUserInfo(String registerUserID) throws WebBBSException 
	{
		UserInfoPO oneUserInfoPO=null;
		Session session=null;
		try
		{
			session = HibernateUtil.currentSession();
			oneUserInfoPO = (UserInfoPO) session.get(UserInfoPO.class,registerUserID);
			if(oneUserInfoPO==null)
			{
				throw new WebBBSException("在数据库表中不存在指定userID="+registerUserID+"的数据顶目!");
			}
		}
		catch (HibernateException he)
		{
			throw new WebBBSException("在UserManageDAOHibernateImple的selectOneUserInfo方法出现了HibernateException异常");
		}
		finally
		{
			HibernateUtil.closeSession();
		}
		return oneUserInfoPO;
	}

	public UserInfoPO selectOneUserInfoByName(String userName)	throws WebBBSException 
	{
		UserInfoPO oneUserInfoPO=null;
		String HQLQuery="from com.px1987.webbbs.dao.UserInfoPO as OneUserInfoPO where OneUserInfoPO.userName='"+userName+"'";
		ArrayList allUserInfoSameName=selectSomeUserInfo(HQLQuery);
		if(allUserInfoSameName.size()==0)
		{
			oneUserInfoPO=null;
			return oneUserInfoPO;
		}

		oneUserInfoPO=(UserInfoPO)allUserInfoSameName.get(0); //取最前面的一位(因为要求在数据库表中不存在同名的两个用户)
		return oneUserInfoPO;
	}


	public ArrayList selectSomeBaseUserInfo(String HQLSelect)	throws WebBBSException 
	{
	    ArrayList allUserInfos=new ArrayList();
	    List selectAllPOResult =null;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	      	 selectAllPOResult = session.createQuery(HQLSelect).list();
	      	 Iterator allPOItem=selectAllPOResult.iterator();
	      	 while(allPOItem.hasNext())
	      	 {
	      		UserInfoBasePO oneBaseUserInfoPO=(UserInfoBasePO)allPOItem.next();
	      		allUserInfos.add(oneBaseUserInfoPO);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeBaseUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allUserInfos;
	}

	public ArrayList selectSomeUserInfo(String HQLSelect)	throws WebBBSException 
	{
	    ArrayList allUserInfos=new ArrayList();
	    List selectAllPOResult =null;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	         query= session.createQuery(HQLSelect);
	      	 query.setCacheable(true);                    //激活查询缓存 
	      	 query.setCacheRegion("com.px1987.webbbs.dao.UserInfoPO");   //指定要使用的cacheRegion,可选
	      	 selectAllPOResult = query.list();

	      	 Iterator allPOItem=selectAllPOResult.iterator();
	      	 while(allPOItem.hasNext())
	      	 {
	      		UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();
	      		allUserInfos.add(oneUserInfoPO);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allUserInfos;
	}

	public int selectTotalRegisterUserCounter() throws WebBBSException 
	{
		int totalRegisterUserCounter;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    String HQLQuery="select count(*)  from  com.px1987.webbbs.dao.UserInfoPO"; 
	    try
	    {
	    	session = HibernateUtil.currentSession();
	    	tx = session.beginTransaction();
	    	query = session.createQuery(HQLQuery);
	      	Integer objectCounter=(Integer)query.uniqueResult();
	      	totalRegisterUserCounter=objectCounter.intValue();

	      	tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的selectTotalRegisterUserCounter方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return totalRegisterUserCounter;
	}

	public ArrayList selectUserSomePropertyInfo(String HQLSelect) throws WebBBSException 
	{
	    ArrayList allUserPropertyInfoArrays=new ArrayList();
	    List selectAllPropertyResult =null;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	         query= session.createQuery(HQLSelect);
	      	 query.setCacheable(true);                    //激活查询缓存 
	      	 query.setCacheRegion("com.px1987.webbbs.dao.UserInfoPO");   //指定要使用的cacheRegion,可选
	      	selectAllPropertyResult = query.list();

	      	 Iterator allPOPropertyItem=selectAllPropertyResult.iterator();
	      	 while(allPOPropertyItem.hasNext())
	      	 {
	      		Object[] oneUserPOPropertyInfo=(Object[])allPOPropertyItem.next();
	      		allUserPropertyInfoArrays.add(oneUserPOPropertyInfo);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的selectUserSomePropertyInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allUserPropertyInfoArrays;
	}	

	public boolean updateOneUserInfo(UserInfoPO oneUpdatedRegisterUserInfo)	throws WebBBSException 
	{
	     boolean OKOrNot=false;
	     Session session=null;
	     Transaction tx=null;
	     UserInfoPO oneUserInfoPO=null;
	     try
	     {
	       session = HibernateUtil.currentSession();
	       tx = session.beginTransaction();
	               oneUserInfoPO = (UserInfoPO) session.get(UserInfoPO.class, oneUpdatedRegisterUserInfo.getId());
	               if(oneUserInfoPO==null)
	               {
	                 throw new WebBBSException("在数据库表中不存在指定userID="+oneUpdatedRegisterUserInfo.getId().toString()+"的数据顶目!");
	               }
	               
	               oneUserInfoPO.setAliaoName(oneUpdatedRegisterUserInfo.getAliaoName());
	               oneUserInfoPO.setPassWordAnswer(oneUpdatedRegisterUserInfo.getPassWordAnswer());
	               oneUserInfoPO.setPassWordAsk(oneUpdatedRegisterUserInfo.getPassWordAsk());
	               oneUserInfoPO.setUserImage(oneUpdatedRegisterUserInfo.getUserImage());
	               oneUserInfoPO.setUserMail(oneUpdatedRegisterUserInfo.getUserMail());
	               oneUserInfoPO.setUserName(oneUpdatedRegisterUserInfo.getUserName());
	               oneUserInfoPO.setUserPassWord(oneUpdatedRegisterUserInfo.getUserPassWord());
	               oneUserInfoPO.setUserType(oneUpdatedRegisterUserInfo.getUserType());
	               oneUserInfoPO.setUserSex(oneUpdatedRegisterUserInfo.getUserSex());
	               oneUserInfoPO.setUserBirthDay(oneUpdatedRegisterUserInfo.getUserBirthDay());
	               oneUserInfoPO.setUserComeFrom(oneUpdatedRegisterUserInfo.getUserComeFrom());
	               oneUserInfoPO.setUserResume(oneUpdatedRegisterUserInfo.getUserResume());

	               oneUserInfoPO.setUserSign(oneUpdatedRegisterUserInfo.getUserSign());
	               oneUserInfoPO.setAcceptAdvise (oneUpdatedRegisterUserInfo.getAcceptAdvise());
	               oneUserInfoPO.setEmailVisible (oneUpdatedRegisterUserInfo.getEmailVisible());

	               oneUserInfoPO.setContactMethod(oneUpdatedRegisterUserInfo.getContactMethod());
	               
	       session.flush();
	       tx.commit();
	       OKOrNot=true;
	     }
	     catch (HibernateException he)
	     {
	       throw new WebBBSException("在UserManageDAOHibernateImple类中的updateOneUserInfo方法出现了HibernateException异常");
	     }
	     finally
	     {
	       HibernateUtil.closeSession();
	     }
	     return OKOrNot;
	}

	public boolean updateOneUserPassWord(String newPassWord,	String registerUserId) throws WebBBSException 
	{
	     boolean OKOrNot=false;
	     Session session=null;
	     Transaction tx=null;
	     String HQL="update com.px1987.webbbs.dao.UserInfoPO as oneUserInfoPO set oneUserInfoPO.userPassWord='"+newPassWord+"' where oneUserInfoPO.id='"+registerUserId+"'";
	     try
	     {
	       session = HibernateUtil.currentSession();
	       tx = session.beginTransaction();
	       Query query = session.createQuery(HQL);
	       query.executeUpdate();
	       
	       tx.commit();
	       OKOrNot=true;
	     }
	     catch (HibernateException he)
	     {
	       throw new WebBBSException("在UserManageDAOHibernateImple类中的updateOneUserPassWord方法出现了HibernateException异常");
	     }
	     finally
	     {
	       HibernateUtil.closeSession();
	     }
	     return OKOrNot;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -