?? elanuserdaoimpl.java
字號:
package com.elan.forum.impl;
import java.sql.Timestamp;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import com.elan.db.ElHbnDB;
import com.elan.forum.dao.UserDAO;
import com.elan.forum.manager.TopicMgr;
import com.elan.forum.model.ForumUser;
import com.elan.forum.model.ForumTopic;
import com.elan.forum.model.Forumtopicreply;
import com.elan.forum.util.Constents;
public class ElanUserDAOImpl implements UserDAO {
private Log log = LogFactory.getLog(ElanUserDAOImpl.class);
private static ElanUserDAOImpl elanUserDAOImpl = null;
public static ElanUserDAOImpl newInstance() {
if (elanUserDAOImpl == null) {
elanUserDAOImpl = new ElanUserDAOImpl();
}
return elanUserDAOImpl;
}
/*
* 這里或得ForumUser將與第三方修改數(shù)據(jù)的時候同步
*/
public List<ForumUser> getAlluser() {
Session session = null;
session = ElHbnDB.getSession();
String queryString = "from ForumUser";
Query queryObject = session.createQuery(queryString);
return queryObject.list();
}
//public List getB
public Iterator<ForumUser> findAlluser() {
System.out.println("into getAlluser");
Iterator<ForumUser> fuList = null;
String queryString = "from ForumUser";
Query queryObject = ElHbnDB.getSession().createQuery(queryString);
fuList = queryObject.iterate();
return fuList;
}
public boolean validateUser(String username, String password) {
boolean isLogon = false;
String queryString = "from ForumUser as fu where fu.username = ? and password = ?";
Query queryObject = ElHbnDB.getSession().createQuery(queryString);
queryObject.setParameter(0, username);
queryObject.setParameter(1, password);
if (queryObject.list().size() > 0) {
isLogon = true;
}
return isLogon;
}
/**
* 驗證用戶并且創(chuàng)建一個用戶視圖
*/
public ForumUser checkUserAndCreateUser(String username, String password) {
ForumUser forumUser = null;
String hql = "from ForumUser as fu where fu.username = ? and fu.password = ?";
Query query = ElHbnDB.getSession().createQuery(hql);
query.setParameter(0, username);
query.setParameter(1, password);
List<ForumUser> list = query.list();
if (list.size() > 0) {
forumUser = (ForumUser) list.get(0);
return forumUser;
}
return forumUser;
}
public boolean forumUserReg(ForumUser forumUser) {
//實現(xiàn),異常已經(jīng)在過濾器中捕獲,不過最好還是在這里返回false,因為在邏輯中調(diào)用該方法,就應(yīng)該由該方法
//回復(fù)響應(yīng)
Session session = ElHbnDB.getSession();
try {
System.out.println("準(zhǔn)備開始保存");
session.save(forumUser);
} catch (RuntimeException re) {
re.printStackTrace();
return false;
}
return true;
}
/*
* 不建立使用這個方法,因為DAO中不應(yīng)該對模型賦予值的任務(wù)(這里不實現(xiàn))
* 建立使用forumUserReg(ForumUser forumUser)
* (non-Javadoc)
* @see com.elan.forum.dao.UserDAO#forumUserReg(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.sql.Timestamp)
*/
public ForumUser forumUserReg(String username, String trueName, String password,
String email, String qq, String sex, String question,
String answer, String address, String userFace, String phone,
Integer mobile, String sign, String jobTitle, String marriage,
String msn, String icq, Timestamp birthday) {
Session session = null;
session = ElHbnDB.getSession();
if (checkUserExist(username, session)) {
return null;
}
ForumUser forumUser = new ForumUser();
forumUser.setAddress(address);
forumUser.setUserFace(userFace);
forumUser.setPhone(phone);
forumUser.setMobile(mobile);
forumUser.setSign(sign);
forumUser.setJobTitle(jobTitle);
forumUser.setMarriage(marriage);
forumUser.setMsn(msn);
forumUser.setIcq(icq);
forumUser.setBirthday(birthday);
forumUser.setUsername(username);
forumUser.setPassword(password);
forumUser.setEmail(email);
forumUser.setQq(qq);
forumUser.setRegLateTime((new Timestamp(System.currentTimeMillis())));
forumUser.setLastLoginTime((new Timestamp(System.currentTimeMillis())));
forumUser.setLocked(Byte.valueOf("0"));
forumUser.setQuestion(question);
forumUser.setAnswer(answer);
forumUser.setLastLoginTime(new Timestamp(System.currentTimeMillis()));
forumUser.setDeleteTopicCount(0);
forumUser.setTopicCount(Integer.valueOf(0));
session.save(forumUser);
return forumUser;
}
public List<ForumUser> findByProperty(String propertyName, Object value) {
Session session = ElHbnDB.getSession();
String queryString = "from ForumUser as model where model."
+ propertyName + "= ?";
Query queryObject = session.createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
}
public List<ForumUser> findByName(Object name) {
return findByProperty("username", name);
}
public boolean checkUserExist(String username, Session session) {
boolean isExist = false;
Session checkSession = session;
String hql = "select COUNT(*) from ForumUser as model where model.username =?";
Query query = checkSession.createQuery(hql);
query.setParameter(0, username);
Long l = (Long) query.uniqueResult();
if (l.intValue() > 0) {
isExist = true;
}
return isExist;
}
public ForumUser findUserById(int id) {
return (ForumUser) ElHbnDB.getSession().get(ForumUser.class, id);
}
public int postTopic(ForumTopic topic) {
return TopicMgr.getTopicMgr().postTopic(topic);
}
public int userModifyPassword(int id, String password) {
Session session = ElHbnDB.getSession();
Query query = session
.createQuery("update ForumUser set password =? where id = ?");
query.setParameter(0, password);
query.setParameter(1, id);
query.executeUpdate();
return Constents.CURRENT_OPERATION_SUCCESS;
}
public int userModifyPassword(ForumUser forumUser) {
Session session = ElHbnDB.getSession();
session.update(forumUser);
return Constents.CURRENT_OPERATION_SUCCESS;
}
public List<ForumUser> findLockedUser() {
return null;
}
public List<ForumUser> findUnlockedUser() {
Session session = null;
session = ElHbnDB.getSession();
String queryString = "from ForumUser";
Query query = session.createQuery(queryString);
query.setFirstResult(0);
query.setMaxResults(3);
return query.list();
}
public boolean ReplyTopic(Forumtopicreply forumtopicreply) {
Session session = ElHbnDB.getSession();
try {
session.save(forumtopicreply);
System.out.println("repltime:" + forumtopicreply.getReplyTime());
} catch (RuntimeException re) {
re.printStackTrace();
return false;
}
return true;
}
public boolean updateUser(ForumUser forumUser) {
Session session = ElHbnDB.getSession();
session.update(forumUser);
return true;
}
/*
* 用戶修改信息
* (non-Javadoc)
* @see com.elan.forum.dao.UserDAO#modifyUserInfo(com.elan.forum.model.ForumUser)
*/
public int modifyUserInfo(ForumUser forumUser) {
Session session = ElHbnDB.getSession();
try {
session.update(forumUser);
} catch (Exception e) {
e.printStackTrace();
return -1;
}
return Constents.USER_MODIFY_SUCCESS;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -