serviceimple.java

来自「该源码包括了基于J2EE的数据持久层设计,设计中使用了DAO,Service,等」· Java 代码 · 共 430 行

JAVA
430
字号
package org.conference.datapersistence.Service;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;

import javax.sql.DataSource;

import org.conference.datapersistence.Bo.ConferenceVO;
import org.conference.datapersistence.Bo.UserVO;
import org.conference.datapersistence.Bo.UserInterestsVO;
import org.javawing.component.cache.Cache;
import org.javawing.component.logging.Log;
import org.javawing.component.logging.LogFactory;
import org.javawing.component.util.ClassUtils;

import org.conference.datapersistence.JDBCFactory;
import org.conference.datapersistence.Dao.UserDao;
import org.conference.datapersistence.Dao.ConferenceDao;
import org.conference.datapersistence.Dao.UserInterestsDao;
import org.conference.datapersistence.Dao.InterestDao;
import org.conference.datapersistence.Dao.ConferenceinterestDao;

public class ServiceImple implements Service {
	private Cache daoCache = JDBCFactory.getDaoCache();

	private Properties props = new Properties();

	protected final Log logger = LogFactory.getLog(getClass());

	public ServiceImple() {
		try {
			props
					.load((new FileInputStream(
							"C:\\Documents and Settings\\lihao\\workspace\\Conference\\src\\org\\conference\\datapersistence\\DaoList.properties")));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// TODO Auto-generated constructor stub
	}

	// Get the specified Dao
	public Object createDao(String daoName) {
		Object dao = (Object) daoCache.get(getClassname(daoName));
		if (dao == null) {
			dao = doCreateDao(getClassname(daoName));
			daoCache.put(daoName, dao);
		}
		return dao;
	}

	// Create Dao instance
	private Object doCreateDao(String name) {
		Object dao = null;
		try {
			Constructor cotr = null;
			try {
				cotr = ClassUtils.forName(name).getConstructor(
						new Class[] { DataSource.class });
			} catch (SecurityException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (NoSuchMethodException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				dao = (Object) cotr.newInstance(new Object[] { JDBCFactory
						.DataSource() });
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return dao;
	}

	// get the file name from the .properties file
	private String getClassname(String daoName) {
		return (String) props.getProperty(daoName);
	}

	public String FindUserPasswordbyUserid(String userid)
			throws ServiceException {
		UserDao dao = null;
		// TODO Auto-generated method stub
		try {
			dao = (UserDao) createDao("UserDao");
			return dao.doFindbyuserid(userid);
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查找到您所需要的用户信息!", e);
		}
	}

	public List FindConferencebyMultiple(ConferenceVO conference)
			throws ServiceException {
		ConferenceDao Conferencedao = null;
		InterestDao Interestdao = null;
		ConferenceinterestDao Conferenceinterestdao = null;
		List listforconference = new ArrayList();
		List result = new ArrayList();
		final StringBuffer interestBuffer = new StringBuffer();
		try {
			Conferencedao = (ConferenceDao) createDao("ConferenceDao");
			Interestdao = (InterestDao) createDao("InterestDao");
			Conferenceinterestdao = (ConferenceinterestDao) createDao("ConferenceinterestDao");
			listforconference = Conferencedao.doFindbyMultiple(conference);
			Iterator iterator = listforconference.iterator();
			while (iterator.hasNext()) {
				ConferenceVO vo = (ConferenceVO) iterator.next();
				List interestsId = new ArrayList();
				interestsId = Conferenceinterestdao.doFindInterestsbyId(vo
						.getId());
				Iterator interestIdInterator = interestsId.iterator();
				while (interestIdInterator.hasNext()) {
					interestBuffer.append(Interestdao
							.doFindInterestsbyId(((Integer) interestIdInterator
									.next()).intValue()));
				}
				vo.setInterests(interestBuffer.toString());
				result.add(vo);
			}
			return result;
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查找到您所需要的会议信息!", e);
		}
	}

	public int insertConferenceInfo(ConferenceVO conference)
			throws ServiceException {
		ConferenceDao conferencedao = null;
		InterestDao interestdao = null;
		ConferenceinterestDao conferenceinterestdao = null;
		try {
			conferencedao = (ConferenceDao) createDao("ConferenceDao");
			interestdao = (InterestDao) createDao("InterestDao");
			conferenceinterestdao = (ConferenceinterestDao) createDao("ConferenceinterestDao");
			if (conferencedao.doStore(conference) == 1) {
				int interestid = interestdao.doFindIdbyname(conference
						.getInterests());
				int conferenceid = conferencedao.doFindMaxConferenceid();
				if (conferenceinterestdao.doStore(conferenceid, interestid) == 1) {
					return 1;
				} else {
					return 0;
				}
			} else {
				return 0;
			}

		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法插入到您所需要的会议信息!", e);
		}
	}

	public int NewUserRegistration(UserVO user) throws ServiceException {
		UserDao userdao = null;
		UserInterestsDao userinterestdao = null;
		InterestDao interestdao = null;
		int result;
		int interestid;
		try {
			userdao = (UserDao) createDao("UserDao");
			userinterestdao = (UserInterestsDao) createDao("UserInterestsDao");
			interestdao = (InterestDao) createDao("InterestDao");
			List interests = this.separatestationchange(user.getInterests());
			Iterator iterator = interests.iterator();
			while (iterator.hasNext()) {
				int userid = userdao.doFindMaxuserid();
				System.out
						.println("user.getInterests():" + user.getInterests());
				String interestname = iterator.next().toString();
				String interestfromdata = null;
				interestfromdata = interestdao.isexist(interestname);
				if (interestfromdata == null) {
					interestdao.doStore(interestname);
					interestid = interestdao.doFindMaxinterestid();
				} else {
					interestid = interestdao.doFindIdbyname(interestname);
				}
				if (userinterestdao.doInstore(userid, interestid) == 1) {
					result = 1;
				} else {
					result = 0;
				}
			}
			if (userdao.doStore(user) == 1) {
				result = 1;
			}
			result = 1;
			return result;
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法插入您的用户信息!", e);
		}
	}

	public List FindAllConferenceInfo() throws ServiceException {
		ConferenceDao dao = null;
		try {
			dao = (ConferenceDao) createDao("ConferenceDao");
			return dao.doFindAll();
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的会议信息!", e);
		}
	}

	public int UpdateUserInfobyUserid(UserVO user) throws ServiceException {
		UserDao userdao = null;
		UserInterestsDao userinterestdao = null;
		InterestDao interestdao = null;
		int result;
		try {
			userdao = (UserDao) createDao("UserDao");
			userinterestdao = (UserInterestsDao) createDao("UserInterestsDao");
			interestdao = (InterestDao) createDao("InterestDao");
			int userid = userdao.doFindUseridbyName(user.getName());
			int delete = userinterestdao.dodeletebyuserid(userid);
			int interestid;
			user.setUserid(userid);
			List interests = this.separatestationchange(user.getInterests());
			Iterator iterator = interests.iterator();
			while (iterator.hasNext()) {
				System.out
						.println("user.getInterests():" + user.getInterests());
				String interestname = iterator.next().toString();
				int indexfrom = interestname.lastIndexOf("[");
				int indexto = interestname.indexOf("]");
				interestname = interestname.substring(indexfrom + 1, indexto);
				String interestfromdata = null;
				interestfromdata = interestdao.isexist(interestname);
				if (interestfromdata == null) {
					interestdao.doStore(interestname);
					interestid = interestdao.doFindMaxinterestid();
				} else {
					interestid = interestdao.doFindIdbyname(interestname);
				}
				if (userinterestdao.doInstore(userid, interestid) == 1) {
					result = 1;
				} else {
					result = 0;
				}
			}
			if (userdao.doUpdatebyId(user) == 1) {
				return 1;
			} else {
				return 0;
			}
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法修改您所需要的会议信息!", e);
		}
	}

	public List FindTopnConferenceInfo(int n) throws ServiceException {
		ConferenceDao dao = null;
		try {
			dao = (ConferenceDao) createDao("ConferenceDao");
			return dao.doFindTopN(n);
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的会议信息!", e);
		}
	}

	public Object FindConferencebyId(int id) throws ServiceException {
		ConferenceDao conferencedao = null;
		InterestDao Interestdao = null;
		ConferenceinterestDao Conferenceinterestdao = null;
		String interests = " ";
		try {
			conferencedao = (ConferenceDao) createDao("ConferenceDao");
			Interestdao = (InterestDao) createDao("InterestDao");
			Conferenceinterestdao = (ConferenceinterestDao) createDao("ConferenceinterestDao");
			ConferenceVO vo = new ConferenceVO();
			vo = (ConferenceVO) conferencedao.doFindbyId(id);
			List interestid = Conferenceinterestdao.doFindInterestsbyId(vo
					.getId());
			Iterator iterator = interestid.iterator();
			while (iterator.hasNext()) {
				Integer id2 = (Integer) iterator.next();
				interests = interests
						+ Interestdao.doFindInterestsbyId(id2.intValue());
			}
			vo.setInterests(interests);
			return vo;
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的会议信息!", e);
		}
	}

	public Object FindUserDetailInfobyName(String name) throws ServiceException {
		UserDao userdao = null;
		UserInterestsDao userinterestdao = null;
		InterestDao interestdao = null;
		int interestid;
		try {
			userdao = (UserDao) createDao("UserDao");
			userinterestdao = (UserInterestsDao) createDao("UserInterestsDao");
			interestdao = (InterestDao) createDao("InterestDao");
			UserVO uservo = new UserVO();
			uservo = (UserVO) userdao.doFindbyuserName(name);
			System.out.println("\n uservo:" + uservo);
			List interestList = userinterestdao.doFindbyUserid(uservo
					.getUserid());
			String interest = "";
			Iterator iterator = interestList.iterator();
			while (iterator.hasNext()) {
				interestid = ((Integer) (iterator.next())).intValue();
				interest = interest
						+ interestdao.doFindInterestsbyId(interestid) + ",";
			}
			uservo.setInterests(interest);
			return uservo;
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的用户信息!", e);
		}
	}

	public String Finduserbyusername(String name) throws ServiceException {
		UserDao userdao = null;
		try {
			userdao = (UserDao) createDao("UserDao");
			return userdao.doFindusername(name);
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的用户信息!", e);
		}
	}

	public List Finduserbymyinterest(String interestname, int myid)
			throws ServiceException {
		UserDao userdao = null;
		UserInterestsDao userinterestdao = null;
		InterestDao interestdao = null;
		List result = new ArrayList();
		int i = 0;
		try {
			userdao = (UserDao) createDao("UserDao");
			userinterestdao = (UserInterestsDao) createDao("UserInterestsDao");
			interestdao = (InterestDao) createDao("InterestDao");
			int interestid = interestdao.doFindIdbyname(interestname);
			List users = userinterestdao.doFindbyInterestid(interestid);
			Iterator iterator = users.iterator();
			while (iterator.hasNext()) {
				Integer useridtemp = (Integer) iterator.next();
				int userid = useridtemp.intValue();
				String username = userdao.doFindUsernamebyUid(userid);
				UserVO uservo = new UserVO();
				uservo = (UserVO) this.FindUserDetailInfobyName(username);

				if (uservo.getUserid() != myid) {
					i++;
					uservo.setUsernum("user" + i);
					result.add(uservo);
				}
			}
			return result;
		} catch (Exception e) {
			if (logger.isInfoEnabled()) {
				logger.error(e.toString());
			}
			throw new ServiceException("无法查询到您所需要的用户信息!", e);
		}
	}

	public List separatestationchange(String stationchange) {

		List stationchangeResults = new ArrayList();

		StringTokenizer sr = new StringTokenizer(stationchange, ",");

		while (sr.hasMoreTokens()) {
			stationchangeResults.add(sr.nextToken());
		}

		return stationchangeResults;
	}
}

⌨️ 快捷键说明

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