📄 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将与第三方修改数据的时候同步
*/
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;
}
/**
* 验证用户并且创建一个用户视图
*/
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) {
//实现,异常已经在过滤器中捕获,不过最好还是在这里返回false,因为在逻辑中调用该方法,就应该由该方法
//回复响应
Session session = ElHbnDB.getSession();
try {
System.out.println("准备开始保存");
session.save(forumUser);
} catch (RuntimeException re) {
re.printStackTrace();
return false;
}
return true;
}
/*
* 不建立使用这个方法,因为DAO中不应该对模型赋予值的任务(这里不实现)
* 建立使用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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -