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

📄 adminusermanagedaohibernateimple.java

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

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.px1987.webbbs.exception.WebBBSException;

public class AdminUserManageDAOHibernateImple implements
		AdminUserManageDAOInterface {

	public AdminUserManageDAOHibernateImple() {
		// TODO 自动生成构造函数存根
	}

	public boolean batchDeleteAdminUserInfo(ArrayList deletedUserIDs)
			throws WebBBSException {
		// TODO 自动生成方法存根
		return false;
	}

	public AdminUserInfoPO selectOneAdminUserInfoData(String userName,	String userPassWord) throws WebBBSException 
	{
		AdminUserInfoPO oneAdminUserInfoPO=null;
		String HQLQuery="from com.px1987.webbbs.dao.AdminUserInfoPO where userName='"+
							userName+"' and userPassWord='"+userPassWord+"'";
		ArrayList allAdminUserInfo=selectSomeAdminUserInfo(HQLQuery);
		if(allAdminUserInfo.size()==0)
		{
			oneAdminUserInfoPO=null;
		}
		oneAdminUserInfoPO=(AdminUserInfoPO)allAdminUserInfo.get(0); //取最前面的一位(因为要求在数据库表中不存在同名的两个用户)
		return oneAdminUserInfoPO;
	}	
	public boolean deleteOneAdminUserInfo(String adminUserID)	throws WebBBSException 
	{
	    boolean OKOrNot=false;
	    Session session=null;
	    Transaction tx=null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	      AdminUserInfoPO oneAdminUserTODeleted=(AdminUserInfoPO)session.get(AdminUserInfoPO.class,adminUserID);
	      	if(oneAdminUserTODeleted==null)
	      	{
	      		throw new WebBBSException("在数据库表中不存在指定userID="+adminUserID+"的数据顶目!");
	      	}
	        session.delete(oneAdminUserTODeleted);
	      tx.commit();
	      OKOrNot=true;
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在UserManageDAOHibernateImple类中的deleteOneAdminUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return OKOrNot;
	}
	public boolean insertOneAdminUserInfo(AdminUserInfoPO oneAdminUserInfo) 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(oneAdminUserInfo);
		    tx.commit();
		    OKOrNot=true;
		  }
		  catch (HibernateException he)
		  {
		    throw new WebBBSException("在UserManageDAOHibernateImple类中的insertOneAdminUserInfo方法出现了HibernateException异常");
		  }
		  finally
		  {
		    HibernateUtil.closeSession();
		  }
		  return OKOrNot;
	}	
	public ArrayList selectAllAdminUserInfo() throws WebBBSException 
	{
		String HQLQuery="from com.px1987.webbbs.dao.AdminUserInfoPO";
	    return selectSomeAdminUserInfo(HQLQuery);
	}
	public ArrayList selectAllAdminUserNameInfo(String adminName) 	throws WebBBSException 
	{
		ArrayList allAdminUserNameInfos = new ArrayList();
		String HQLSelect="select oneAdminUserInfoPO.userName from com.px1987.webbbs.dao.AdminUserInfoPO oneAdminUserInfoPO where oneAdminUserInfoPO.userName like '"+adminName+"%'";
/*	在此中查询中不能采用带参数的形式
 * 	String HQLSelect="select oneUserInfoPO.userName from com.px1987.webbbs.dao.UserInfoPO oneUserInfoPO where oneUserInfoPO.userName like '?%'";
 * 
 */
	    List selectAllAdminUserNamesResult =null;
	    Session session=null;
	    Transaction tx=null;
	    Query query =null;
	    try
	    {
	      session = HibernateUtil.currentSession();
	      tx = session.beginTransaction();
	      query=session.createQuery(HQLSelect);
	      selectAllAdminUserNamesResult = query.list();
	      	 Iterator allUserNameItem=selectAllAdminUserNamesResult.iterator();
	      	 while(allUserNameItem.hasNext())
	      	 {
	      		String oneUserNameInfo=(String)allUserNameItem.next();
	      		allAdminUserNameInfos.add(oneUserNameInfo);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在AdminUserManageDAOHibernateImple类中的selectAllAdminUserNameInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allAdminUserNameInfos;

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

	public AdminUserInfoPO selectOneAdminUserInfoByName(String adminUserName)	throws WebBBSException 
	{
		AdminUserInfoPO oneAdminUserInfoPO=null;
		String HQLQuery="from com.px1987.webbbs.dao.AdminUserInfoPO where userName='"+adminUserName+"'";
		ArrayList allAdminUserInfoSameName=selectSomeAdminUserInfo(HQLQuery);
		if(allAdminUserInfoSameName.size()==0)
		{
			oneAdminUserInfoPO=null;
			return oneAdminUserInfoPO;
		}
		oneAdminUserInfoPO=(AdminUserInfoPO)allAdminUserInfoSameName.get(0); //取最前面的一位(因为要求在数据库表中不存在同名的两个用户)
		return oneAdminUserInfoPO;
	}
	public ArrayList selectSomeAdminUserInfo(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.AdminUserInfoPO");   //指定要使用的cacheRegion,可选
	      	 selectAllPOResult = query.list();

	      	 Iterator allPOItem=selectAllPOResult.iterator();
	      	 while(allPOItem.hasNext())
	      	 {
	      		AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allPOItem.next();
	      		allUserInfos.add(oneAdminUserInfoPO);
	      	 }
	      tx.commit();
	    }
	    catch (HibernateException he)
	    {
	      throw new WebBBSException("在AdminUserManageDAOHibernateImple类中的selectSomeAdminUserInfo方法出现了HibernateException异常");
	    }
	    finally
	    {
	      HibernateUtil.closeSession();
	    }
	    return allUserInfos;
	}
	public boolean updateOneAdminUserInfo(	AdminUserInfoPO oneUpdatedAdminUserInfo) throws WebBBSException 
	{
	     boolean OKOrNot=false;
	     Session session=null;
	     Transaction tx=null;
	     AdminUserInfoPO oneAdminUserInfoPO=null;
	     try
	     {
	       session = HibernateUtil.currentSession();
	       tx = session.beginTransaction();
	       oneAdminUserInfoPO = (AdminUserInfoPO) session.get(AdminUserInfoPO.class, oneUpdatedAdminUserInfo.getId());
	               if(oneAdminUserInfoPO==null)
	               {
	                 throw new WebBBSException("在数据库表中不存在指定userID="+oneUpdatedAdminUserInfo.getId().toString()+"的数据顶目!");
	               }
	                oneAdminUserInfoPO.setUserName(oneUpdatedAdminUserInfo.getUserName());
	                oneAdminUserInfoPO.setUserPassWord(oneUpdatedAdminUserInfo.getUserPassWord());
	                oneAdminUserInfoPO.setUserType(oneUpdatedAdminUserInfo.getUserType());
	                oneAdminUserInfoPO.setAliaoName(oneUpdatedAdminUserInfo.getAliaoName());
					oneAdminUserInfoPO.setPassWordAsk(oneUpdatedAdminUserInfo.getPassWordAsk());
					oneAdminUserInfoPO.setUserImage(oneUpdatedAdminUserInfo.getUserImage());
					oneAdminUserInfoPO.setRegisterTime(oneUpdatedAdminUserInfo.getRegisterTime());
					oneAdminUserInfoPO.setPassWordAnswer(oneUpdatedAdminUserInfo.getPassWordAnswer());
					oneAdminUserInfoPO.setUserMail(oneUpdatedAdminUserInfo.getUserMail());
					oneAdminUserInfoPO.setUserSex(oneUpdatedAdminUserInfo.getUserSex());
					oneAdminUserInfoPO.setUserBirthDay(oneUpdatedAdminUserInfo.getUserBirthDay());
					oneAdminUserInfoPO.setUserComeFrom(oneUpdatedAdminUserInfo.getUserComeFrom());
					
					oneAdminUserInfoPO.setUserResume(oneUpdatedAdminUserInfo.getUserResume());				
					
					oneAdminUserInfoPO.setWorkUnit(oneUpdatedAdminUserInfo.getWorkUnit());
					oneAdminUserInfoPO.setStudyHistory(oneUpdatedAdminUserInfo.getStudyHistory());
					oneAdminUserInfoPO.setStudySchool(oneUpdatedAdminUserInfo.getStudySchool());
					oneAdminUserInfoPO.setIdCardNo(oneUpdatedAdminUserInfo.getIdCardNo());
					
	       session.flush();
	       tx.commit();
	       OKOrNot=true;
	     }
	     catch (HibernateException he)
	     {
	       throw new WebBBSException("在AdminUserManageDAOHibernateImple类中的updateOneUserInfo方法出现了HibernateException异常");
	     }
	     finally
	     {
	       HibernateUtil.closeSession();
	     }

	     return OKOrNot;

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

	}
}

⌨️ 快捷键说明

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