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 + -
显示快捷键?