J2EE 课程设计实训项目《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

更新时间:2023-08-30 15:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1/2部分)

1.1.1系统前台用户管理的DAO组件的实现

1、在项目中添加一个HibernateUtil类

(1)类名称为HibernateUtil,包名称为com.px1987.webbbs.hibernatedao

(2)编程该类

杨教授大学堂,版权所有,盗版必究。1/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

package com.px1987.webbbs.hibernatedao;

import org.hibernate.*;

import org.hibernate.cfg.*;

public class HibernateUtil {

private static final SessionFactory sessionFactory;

/* 静态初始器,当JVM(Java虚拟机)加载HibernateUtil类时,会执行该静态代码块。

*/

static {

try{ // Create the SessionFactory

sessionFactory = new

Configuration().configure().buildSessionFactory();

/*也可以采用下面的方式

Configuration hibernateConfiguration=new Configuration();

sessionFactory = hibernateConfiguration.configure().buildSessionFactory();

*/

}

catch (Throwable ex){

throw new ExceptionInInitializerError(ex);

}

杨教授大学堂,版权所有,盗版必究。2/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

}

public static final ThreadLocal threadLocal = new ThreadLocal();

public static Session currentSession() {

Session currentSession = (Session) threadLocal.get();

if (currentSession == null) {

currentSession = sessionFactory.openSession();

threadLocal.set(currentSession);

}

return currentSession;

}

//下面的方法是满足Hibernate中的拦截器组件的应用需要

public static Session currentSession(Interceptor someOneInterceptor){ Session currentSession = (Session) threadLocal.get();

if (currentSession == null){

currentSession = sessionFactory.openSession(someOneInterceptor);

threadLocal.set(currentSession);

}

return currentSession;

}

public static void closeSession(){

Session currentSession = (Session) threadLocal.get();

if (currentSession != null){

currentSession.close();

}

threadLocal.set(null);

}

}

2、针对UserManageDAOInterface的DAO接口提供一个实现类

(1)类名称为UserManageDAOHibernateImple,包名称为com.px1987.webbbs.hibernatedao、并且继承Observable类

杨教授大学堂,版权所有,盗版必究。3/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

(2)编程该实现类

package com.px1987.webbbs.hibernatedao;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

杨教授大学堂,版权所有,盗版必究。4/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料import java.util.List;

import java.util.Map;

import java.util.Observable;

import java.util.Set;

import org.hibernate.Criteria;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.criterion.Expression;

import org.springframework.dao.DataAccessException;

import com.px1987.webbbs.config.ClassNameConfig;

import http://www.77cn.com.cnerInfoBasePO;

import http://www.77cn.com.cnerInfoPO;

import http://www.77cn.com.cnerManageDAOInterface;

import com.px1987.webbbs.exception.WebBBSException;

import http://www.77cn.com.cnerInfoInterceptor;

import com.px1987.webbbs.model.PageStateVO_Prototype;

import com.px1987.webbbs.util.LogInfoFactory;

public class UserManageDAOHibernateImple extends Observable implements UserManageDAOInterface {

public UserManageDAOHibernateImple() {

}

public boolean batchDeleteUserInfo(ArrayList deletedUserIDs)

throws WebBBSException {

boolean OKOrNot=false;

Session session=null;

Transaction tx=null;

Connection con=null;

try{

杨教授大学堂,版权所有,盗版必究。5/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

session = HibernateUtil.currentSession();

tx = session.beginTransaction();

con=session.connection();

// 下面的批处理是首先删除BBSInfo

String deleteBBSInfoSql="delete from BBS where userID=?";

java.sql.PreparedStatement pstmtBBSInfoDeleted =

con.prepareStatement(deleteBBSInfoSql,

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

Iterator allBBSInfoDeletedItem=deletedUserIDs.iterator();

while(allBBSInfoDeletedItem.hasNext()){

String oneUserIDToDeleted=(String)allBBSInfoDeletedItem.next();

pstmtBBSInfoDeleted.setString(1,oneUserIDToDeleted);

pstmtBBSInfoDeleted.addBatch();

}

pstmtBBSInfoDeleted.executeBatch();

// 下面的批处理是首先删除UserInfo

String deleteUserInfoSql="delete from userInfo where userID=?";

java.sql.PreparedStatement pstmtUserInfoDeleted =

con.prepareStatement(deleteUserInfoSql,

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

Iterator allUserInfoDeletedItem=deletedUserIDs.iterator();

while(allUserInfoDeletedItem.hasNext()){

String oneUserIDToDeleted=(String)allUserInfoDeletedItem.next();

pstmtUserInfoDeleted.setString(1,oneUserIDToDeleted);

pstmtUserInfoDeleted.addBatch();

}

pstmtUserInfoDeleted.executeBatch();

http://www.77cn.com.cnmit();

杨教授大学堂,版权所有,盗版必究。6/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

OKOrNot=true;

}

catch (SQLException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

tx.rollback();

throw new WebBBSException("在UserManageDAOHibernateImple类中的batchDeleteUserInfo方法出现了HibernateException异常");

}

finally{

/*

try{

con.close();

}

catch(SQLException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("不能正确地关闭数据库连接!,异常的详细内容为:"+e.getMessage());

}

*/

HibernateUtil.closeSession();

}

return OKOrNot;

杨教授大学堂,版权所有,盗版必究。7/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

}

public boolean deleteOneUserInfo(String registerUserID)

throws WebBBSException {

boolean OKOrNot=false;

Session session=null;

Transaction tx=null;

try{

//没有应用Hibernate中的拦截器组件时

// session = HibernateUtil.currentSession();

session = HibernateUtil.currentSession(new UserInfoInterceptor());

tx = session.beginTransaction();

UserInfoPO oneUserTODeleted=

(UserInfoPO)session.get(UserInfoPO.class,registerUserID);

if(oneUserTODeleted==null){

throw new WebBBSException("在数据库表中不存在指定userID="+registerUserID+"的数据顶目!");

}

session.delete(oneUserTODeleted);

http://www.77cn.com.cnmit();

OKOrNot=true;

}

catch (HibernateException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

tx.rollback();

throw new WebBBSException("在UserManageDAOHibernateImple类中的deleteOneUserInfo方法出现了HibernateException异常");

杨教授大学堂,版权所有,盗版必究。8/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料}

finally{

HibernateUtil.closeSession();

}

return OKOrNot;

}

public UserInfoPO doGetMaxIDUserInfo() throws WebBBSException { boolean OKOrNot=false;

Session session=null;

Transaction tx=null;

Connection con=null;

ResultSet rs=null;

UserInfoPO oneUserInfoPO=null;

String select_SqlStatement=null;

PreparedStatement pstmt =null;

try{

session = HibernateUtil.currentSession();

tx = session.beginTransaction();

con=session.connection();

select_SqlStatement="select * from userInfo";

pstmt = con.prepareStatement(select_SqlStatement,

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

rs=pstmt.executeQuery();

if(http://www.77cn.com.cnst()){

oneUserInfoPO=new UserInfoPO();

oneUserInfoPO.setUserName(rs.getString("userName"));

oneUserInfoPO.setUserPassWord(rs.getString("userPassWord"));

oneUserInfoPO.setId(rs.getString("userID"));

oneUserInfoPO.setUserType(rs.getInt("userType"));

杨教授大学堂,版权所有,盗版必究。9/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

oneUserInfoPO.setAliaoName(rs.getString("aliaoName"));

oneUserInfoPO.setPassWordAsk(rs.getString("passWordAsk"));

oneUserInfoPO.setUserImage(rs.getString("userImage"));

oneUserInfoPO.setRegisterTime(rs.getString("registerTime"));

oneUserInfoPO.setPassWordAnswer(rs.getString("passWordAnswer"));

oneUserInfoPO.setUserMail(rs.getString("userMail"));

oneUserInfoPO.setUserSex(rs.getInt("userSex"));

oneUserInfoPO.setUserBirthDay(rs.getString("userBirthDay"));

oneUserInfoPO.setUserComeFrom(rs.getString("userComeFrom"));

oneUserInfoPO.setUserResume(rs.getString("userResume"));

oneUserInfoPO.setUserSign(rs.getString("userSign"));

oneUserInfoPO.setEmailVisible(rs.getInt("emailVisible"));

oneUserInfoPO.setAcceptAdvise(rs.getInt("acceptAdvise"));

Map contactMethod = new HashMap();

contactMethod.put("userQQCode", rs.getString("userQQCode"));

contactMethod.put("userICQCode", rs.getString("userICQCode"));

contactMethod.put("userMSNCode", rs.getString("userMSNCode"));

oneUserInfoPO.setContactMethod(contactMethod);

}

else {

oneUserInfoPO=null;

}

http://www.77cn.com.cnmit();

}

catch (SQLException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

杨教授大学堂,版权所有,盗版必究。10/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

throw new WebBBSException("在UserManageDAOHibernateImple类中的doGetMaxIDUserInfo方法出现了HibernateException异常");

}

finally{

/*

try{

con.close();

}

catch(SQLException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("不能正确地关闭数据库连接!,异常的详细内容为:"+e.getMessage());

}

*/

HibernateUtil.closeSession();

}

return oneUserInfoPO;

}

public boolean insertOneUserInfo(UserInfoPO oneRegisterUserInfo)

throws WebBBSException {

boolean OKOrNot=false;

Session session=null;

Transaction tx=null;

try{

session = HibernateUtil.currentSession();

tx = session.beginTransaction();

杨教授大学堂,版权所有,盗版必究。11/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

/*

注意:对于采用MS SQLServer2000的JDBC驱动程序则应该进行中文编码的转换,而采用JDTS则不需要,否则会出现中文乱码

oneUserInfo.setUserName(new String(userName.getBytes("gb2312"),"ISO8859-1"));

*/

session.save(oneRegisterUserInfo);

http://www.77cn.com.cnmit();

OKOrNot=true;

}

catch (HibernateException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

tx.rollback();

throw new WebBBSException("在UserManageDAOHibernateImple类中的insertOneUserInfo方法出现了HibernateException异常");

}

finally{

HibernateUtil.closeSession();

}

return OKOrNot;

}

public ArrayList<UserInfoBasePO> selectAllBaseUserInfo() throws WebBBSException { String HQLQuery="from http://www.77cn.com.cnerInfoBasePO";

return selectSomeBaseUserInfo(HQLQuery);

}

public ArrayList<String> selectAllRegisterUserNameInfo(String userName)

throws WebBBSException {

杨教授大学堂,版权所有,盗版必究。12/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

ArrayList allRegisterUserNameInfos = new ArrayList();

String HQLSelect="select http://www.77cn.com.cnerName from http://www.77cn.com.cnerInfoPO oneUserInfoPO where http://www.77cn.com.cnerName like '"+userName+"%'";

/* 在此中查询中不能采用带参数的形式

* String HQLSelect="select http://www.77cn.com.cnerName from http://www.77cn.com.cnerInfoPO oneUserInfoPO where http://www.77cn.com.cnerName 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);

}

http://www.77cn.com.cnmit();

}

catch (HibernateException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

杨教授大学堂,版权所有,盗版必究。13/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeBaseUserInfo方法出现了HibernateException异常");

}

finally{

HibernateUtil.closeSession();

}

return allRegisterUserNameInfos;

}

public ArrayList<UserInfoPO> selectAllUserInfo() throws WebBBSException { String HQLQuery="from http://www.77cn.com.cnerInfoPO";

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 e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

杨教授大学堂,版权所有,盗版必究。14/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("在UserManageDAOHibernateImple的selectOneUserInfo方法出现了HibernateException异常");

}

finally{

HibernateUtil.closeSession();

}

return oneUserInfoPO;

}

public UserInfoPO selectOneUserInfoByName(String userName)

throws WebBBSException {

UserInfoPO oneUserInfoPO=null;

String HQLQuery="from http://www.77cn.com.cnerInfoPO as OneUserInfoPO where http://www.77cn.com.cnerName='"+userName+"'";

ArrayList allUserInfoSameName=selectSomeUserInfo(HQLQuery);

if(allUserInfoSameName.size()==0){

oneUserInfoPO=null;

return oneUserInfoPO;

}

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

return oneUserInfoPO;

}

public UserInfoPO selectOneUserInfoData(String userName, String userPassWord)

throws WebBBSException {

/*

UserInfoPO oneUserInfoPO=null;

String HQLQuery="from http://www.77cn.com.cnerInfoPO where userName='"+

userName+"' and userPassWord='"+userPassWord+"'";

杨教授大学堂,版权所有,盗版必究。15/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

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

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("在UserManageDAOHibernateImple类中的SelectOneUserInfoData方法出现了HibernateException异常");

}

finally {

HibernateUtil.closeSession();

}

return oneUserInfoPO;

杨教授大学堂,版权所有,盗版必究。16/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

}

public ArrayList<UserInfoBasePO> 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);

}

http://www.77cn.com.cnmit();

}

catch (HibernateException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeBaseUserInfo方法出现了HibernateException异常");

}

finally{

HibernateUtil.closeSession();

杨教授大学堂,版权所有,盗版必究。17/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料}

return allUserInfos;

}

public ArrayList<UserInfoPO> 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); //激活查询缓存

//指定要使用的cacheRegion,可选

query.setCacheRegion("http://www.77cn.com.cnerInfoPO");

selectAllPOResult = query.list();

Iterator allPOItem=selectAllPOResult.iterator();

while(allPOItem.hasNext()){

UserInfoPO oneUserInfoPO=(UserInfoPO)allPOItem.next();

allUserInfos.add(oneUserInfoPO);

}

http://www.77cn.com.cnmit();

}

catch (HibernateException e){

int logImpleKind=

Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));

this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));

this.setChanged(); //注意要设置变化点

杨教授大学堂,版权所有,盗版必究。18/35页

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——实现系统前台用户管理的DAO组件及对应的单元测试用例(第1部分)

杨教授大学堂精心创作的优秀程序员职业提升必读系列资料

notifyObservers(e); //当出现异常时将通知各个观察者

throw new WebBBSException("在UserManageDAOHibernateImple类中的selectSomeUserInfo方法出现了HibernateException异常");

}

finally{

HibernateUtil.closeSession();

}

return allUserInfos;

}

public int selectTotalGeneralRegisterUserCounter(Map registerUserInfos) throws WebBBSException{

String WhereString="";

Set keySet=registerUserInfos.keySet();

Iterator allMapKeys=keySet.iterator();

while(allMapKeys.hasNext()) {

String oneMapKey=(String)allMapKeys.next();

WhereString=WhereString+" oneUserInfoPO."+oneMapKey+" like '%"+(String)registerUserInfos.get(oneMapKey)+"%' and ";

}

WhereString=WhereString.substring(0, WhereString.length()-5);

String HQLSelect="select count(*) from http://www.77cn.com.cnerInfoPO as oneUserInfoPO where http://www.77cn.com.cnerType=1 and "+WhereString;

int totalRegisterUserCounter;

Session session=null;

Transaction tx=null;

Query query =null;

try {

session = HibernateUtil.currentSession();

tx = session.beginTransaction();

query = session.createQuery(HQLSelect);

杨教授大学堂,版权所有,盗版必究。19/35页

本文来源:https://www.bwwdw.com/article/dqti.html

Top