userimpl.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 429 行 · 第 1/2 页

JAVA
429
字号
/* 
 * Created on 2006-2-27
 * Last modified on 2007-12-20
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.dao.hibernate.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import com.yeqiangwei.club.dao.UserDAO;
import com.yeqiangwei.club.dao.hibernate.ConnectionProvider;
import com.yeqiangwei.club.dao.hibernate.support.HibernateFacade;
import com.yeqiangwei.club.dao.hibernate.support.HibernateProvider;
import com.yeqiangwei.club.dao.hibernate.support.HibernateUserFacade;
import com.yeqiangwei.club.model.User;
import com.yeqiangwei.club.param.UserParameter;
import com.yeqiangwei.util.Validator;

public class UserImpl implements UserDAO{
	
	private static final Logger logger = Logger.getLogger(UserImpl.class);
	
	private static final String FIND_USERID = "from User where userId=?";
	
	private static final String FIND_USERNAME = "from User where userName=?";
	
	private static final String FIND_USERNAME_PASSWORD = "from User where userName=? and password=?";
	
	private static final String FIND_USERID_PASSWORD = "from User where userId=? and password=?";
	
	private static final String FIND_EMAILADDRESS = "from User where emailAddress=?";
	
	private static final String FIND_ALL = "form User order by userId desc ";
	
	private static final String COUNT_ALL = "select count(userId) form User";
	
	private static final String UPDATE_ISINDEXED_USERID = "update User set isIndexed=? where userId=?";
	
	private static final String UPDATE_VIEWS_USERID = "update User set views=? where userId=?";
	
	private static final String UPDATE_SIG_USERID = "update User set signatures=? where userId=?";
	
	private HibernateProvider<User> getHibernateProvider(){
		if(ConnectionProvider.whichConnection==0){
			return new HibernateFacade<User>();
		}else{
			return new HibernateUserFacade<User>();
		}
	}

	@Override
	public void updateViewsByUserId(int userId, int views) {
		HibernateProvider<User> hibernateProvider = this.getHibernateProvider();
		hibernateProvider.createQuery(UPDATE_VIEWS_USERID);
		hibernateProvider.setInt(0,views);
		hibernateProvider.setInt(1,userId);
		hibernateProvider.executeUpdate();
	}
	
	public int updateIsIndexedByUserId(int userId, boolean isIndexed){
		HibernateProvider<User> hibernateProvider = this.getHibernateProvider();
		hibernateProvider.createQuery(UPDATE_ISINDEXED_USERID);
		hibernateProvider.setBoolean(0,isIndexed);
		hibernateProvider.setInt(1,userId);
		return hibernateProvider.executeUpdate();
	}
	
	public void create(User item) {
		HibernateProvider<User> hibernateProvider = this.getHibernateProvider();
		hibernateProvider.save(item);
	}

	public void update(User item) {
		HibernateProvider<User> hibernateProvider = this.getHibernateProvider();
		//throw new com.yeqiangwei.club.exception.DAOException("test........");
		hibernateProvider.update(item);
	}

	public int delete(User user) {
        StringBuffer hql = new StringBuffer();
        hql.append("delete User where userId=?");
        HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
        hibernateProvider.createQuery(hql);
        hibernateProvider.setInt("userId",user.getUserId());
        return hibernateProvider.executeUpdate();
	}

	@Override
	public int updateSignaturesByUserId(int userId, String sig) {
        HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
        hibernateProvider.createQuery(UPDATE_SIG_USERID);
        hibernateProvider.setString(0, sig);
        hibernateProvider.setInt(1,userId);
        return hibernateProvider.executeUpdate();
	}

	public User findById(int userId) {
    	HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
    	hibernateProvider.createQuery(FIND_USERID);
    	hibernateProvider.setInt(0, userId);
    	hibernateProvider.setCacheable(true); 
    	hibernateProvider.setMaxResults(1);
        return hibernateProvider.uniqueResult();
	}

	public User findByUserName(String userName) {
    	HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
    	hibernateProvider.createQuery(FIND_USERNAME);
    	hibernateProvider.setString(0, userName);
    	hibernateProvider.setCacheable(true); 
    	hibernateProvider.setMaxResults(1);
        return hibernateProvider.uniqueResult();
	}

	public User findByUserNameAndPassword(String userName, String password) {
    	HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
    	hibernateProvider.createQuery(FIND_USERNAME_PASSWORD);
    	hibernateProvider.setString(0, userName);
    	hibernateProvider.setString(1, password);
    	hibernateProvider.setMaxResults(1);
        return hibernateProvider.uniqueResult();
	}
	
	public User findByUserIdAndPassword(int userId, String password) {
    	HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
    	hibernateProvider.createQuery(FIND_USERID_PASSWORD);
    	hibernateProvider.setInt(0, userId);
    	hibernateProvider.setString(1, password);
    	hibernateProvider.setMaxResults(1);
        return hibernateProvider.uniqueResult();
	}

	public User findByEmailAddress(String emailAddress) {
    	HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
    	hibernateProvider.createQuery(FIND_EMAILADDRESS);
    	hibernateProvider.setString(0,emailAddress);
    	hibernateProvider.setMaxResults(1);
        return hibernateProvider.uniqueResult();
	}
	
	public List<User> findAll(UserParameter param) {
        int startRow = param.getPagination().getStartRow();
        int endRow  = param.getPagination().getEndRow();
        HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
        hibernateProvider.createQuery(FIND_ALL);
        hibernateProvider.setFirstResult(startRow);
        hibernateProvider.setMaxResults(endRow);
		return hibernateProvider.executeQuery();  
	}


	public long countAll(UserParameter param) {
		HibernateProvider<User> hibernateProvider= this.getHibernateProvider();
        hibernateProvider.createQuery(COUNT_ALL);
		return hibernateProvider.resultTotal();
	}
	
	private String getOrderBy(UserParameter param){
		StringBuffer hql = new StringBuffer();
        if(Validator.isEmpty(param.getOrderBy())){
        	hql.append(" order by userId desc");
        }
        else if(param.getOrderBy().byteValue()==0){
            hql.append(" order by userId desc");
        }
        else if(param.getOrderBy().byteValue()==1){
        	hql.append(" order by userLoginTimes desc");
        }
        else if(param.getOrderBy().byteValue()==2){
        	hql.append(" order by userTopicCount desc");
        }
        else if(param.getOrderBy().byteValue()==3){
        	hql.append(" order by userReCount desc");
        }
        else if(param.getOrderBy().byteValue()==4){
        	hql.append(" order by score desc");
        }
        else if(param.getOrderBy().byteValue()==5){
        	hql.append(" order by credit desc");
        }
        else if(param.getOrderBy().byteValue()==6){
        	hql.append(" order by money desc");
        }
        else if(param.getOrderBy().byteValue()==7){
        	hql.append(" order by lastLoginDateTime desc");
        }
        else if(param.getOrderBy().byteValue()==8){
        	hql.append(" order by userId asc");
        }
        else if(param.getOrderBy().byteValue()==9){
        	hql.append(" order by views desc");
        }
        return hql.toString();
	}
	
	private String getWhere(UserParameter param){
		StringBuffer hql = new StringBuffer();
        if(!Validator.isEmpty(param.getSex())){
            hql.append(" and userSex="+ param.getSex().byteValue() +"");
        }
        if(!Validator.isEmpty(param.getRegIp())){
            hql.append(" and (regIp like '%"+ param.getRegIp() +"%'");
            hql.append(" or lastLoginIp like '%"+ param.getRegIp() +"%')");
        }
        if(!Validator.isEmpty(param.getUserName())){
            hql.append(" and userName like ? ");
        }
        if(!Validator.isEmpty(param.getAreaId())){

⌨️ 快捷键说明

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