⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdao.java

📁 一个运营支持决算系统(BIOS)的源码
💻 JAVA
字号:
package com.netctoss.liping.userManage.dao.impl;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.support.TransactionTemplate;

import com.netctoss.liping.pricing.Pricing;

import com.netctoss.liping.tool.PageController;
import com.netctoss.liping.userManage.User;
import com.netctoss.liping.userManage.UserService;
import com.netctoss.liping.userManage.UserStatus;
import com.netctoss.liping.userManage.dao.IUserDAO;

public class UserDAO implements IUserDAO {

	private HibernateTemplate hibernateTemplate;
	private TransactionTemplate tt;
	/**
	 * 向数据库增加一个用户
	 * @param u
	 * @return
	 */
	public Long insert( User u){
		return (Long) this.hibernateTemplate.save( u);
	}
	/**
	 * 更新一个用户的可更新的基本信息
	 * @param user
	 */
	public void update( User user){
		
		this.hibernateTemplate.update( user );
	}
	/**
	 * 查找出数据库的所有用户
	 * @return
	 */
	public List< User> list(){
		
		return this.hibernateTemplate.loadAll( User.class );
	}
	/**
	 * 根据一个用户的id级联查找出所有关联的属性
	 * @param user_id
	 * @return
	 */
	public User find( Long user_id){
		
		List list =  this.hibernateTemplate.findByNamedQuery("findUserByUserId", user_id);
		System.out.println(list.get(0));
		return (list.isEmpty()==false ? (User)list.get(0):null);
	}
	/**
	 * 删除一个用户
	 * @param user
	 */
	public void delete( User user){
		
		this.hibernateTemplate.delete( user );
	}
	/**
	 * 根据用户的id更新用户的状态 (0:正常,1:暂停,2:删除) 
	 * user_status 与status的关系:
	if(status==0)user_status=0,1,2
	if(status==1)user_status=1,2
	if(status==2)user_staues=2;
	 * @param userId
	 * @param status
	 */
	public void updateStatus( Long userId , int status ){
		
		final Long uid = userId;
		final int sta = status;
		this.hibernateTemplate.execute( new HibernateCallback(){

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				
				Query q = session.createQuery("update User u set u.status = ? where u.id=?")
						.setInteger(0, sta)
						.setLong(1, uid);
				Query q2 =session.createQuery(" update UserService us set us.user_status=? where us.user.id =? and us.user_status = 0")
						.setString(0, String.valueOf( sta))
						.setLong(1, uid);
				Query q3 =session.createQuery(" update UserService us set us.user_status=? where us.user.id =? ")
						.setString(0, String.valueOf( sta))
						.setLong(1, uid);
				Query q4 = session.createQuery( "from UserService us where us.user.id=?")
						.setLong(0, uid);
				
				q.executeUpdate();
				
				if( ! q3.list().isEmpty()){
					if(uid==1){
						q2.executeUpdate();
					}
					if(uid==0){
						q2.executeUpdate();
					}
				}
				
			  return null;
			}
			
		});
	}
	/**
	 * 根据用户的账务帐号查询用户 findByLoginName
	 * @param LoginName
	 * @return
	 */
	public User findUserByLoginName( String LoginName){
		
		List list = this.hibernateTemplate.findByNamedQuery("findByLoginName",LoginName);
		
		return (list.isEmpty()==false ? (User)list.get(0):null);
	}
	/**
	 * 根据用户的密码查找所有的用户 findByLoginNameAndPass
	 * @param name
	 * @param password
	 * @return
	 */
	public User findByInfo(String name,String password){
		
		List list = this.hibernateTemplate.findByNamedQuery("findByLoginNameAndPass", new Object[]{ name,password });
		return (list.isEmpty()==false ? (User)list.get(0):null);
	
	}
	/**
	 * 向数据库增加一个服务
	 * @return
	 */
	public Long addService( UserService service){
		
		return (Long) this.hibernateTemplate.save( service );
	}
	/**
	 * 根据userservice的id级联查找用户服务
	 * @param id
	 * @return
	 */
	public UserService findUserServiceById(Long id){
		
		List list = this.hibernateTemplate.findByNamedQuery("findUserServiceById",id);
		return (list.isEmpty()==false ? (UserService)list.get(0):null);
	}
	/**
	 * 根据服务的id修改服务的密码
	 * 
	 * @param id
	 * @param password
	 * @return 
	 */
	public void updatePass( Long id, String password){
		
		final String ps = password;
		final Long usid = id;
		this.hibernateTemplate.execute( new HibernateCallback(){

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				
				Query q2 =session.createQuery(" update UserService us set us.lab_login_password=? where us.id =?")
				.setString(0, ps)
				.setLong(1, usid);
				q2.executeUpdate();
				return null;
			}
			
		});
	}
	/**
	 * 根据服务的id修改服务的状态
	 * @param id
	 * @param password
	 */
	public void updateServiceStatus(  Long id, int status) {
		
		final int sta = status;
		final Long uid = id;
		this.hibernateTemplate.execute( new HibernateCallback(){

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				
				Query q2 =session.createQuery(" update UserService us set us.user_status=? where us.user.id =?")
				.setString(0, String.valueOf( sta))
				.setLong(1, uid);
				q2.executeUpdate();
				return null;
			}
			
		});
	}
	/**
	 * @return the hibernateTemplate
	 */
	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}
	/**
	 * @param hibernateTemplate the hibernateTemplate to set
	 */
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
	public List listByPage(PageController page) {
		
		
		if(page==null){
			page = new PageController (list().size(),1);
		}
			
		
		final PageController p = page;
		List list = (List) this.hibernateTemplate.execute( new HibernateCallback(){

			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				
				Query query = session.createQuery("from User");
				query.setMaxResults( p.getPageSize());
				query.setFirstResult( p.getPageStartRow());
				
				return query.list();
			}
			
		});
		return list;
	}
	
	
}

⌨️ 快捷键说明

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