userinfodaohibernate.java

来自「这个是完整的wap项目的源码 开发语言 Java 系统架构 Struts +」· Java 代码 · 共 174 行

JAVA
174
字号
package com.longtime.wap.module.user.dao.hibernate;

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

import org.hibernate.HibernateException;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;

import com.longtime.wap.common.BaseDao;
import com.longtime.wap.common.web.Page;
import com.longtime.wap.model.UserInfo;
import com.longtime.wap.module.user.common.UserInfoConstants;
import com.longtime.wap.module.user.dao.UserInfoDao;

/**
 * UserInfoDao层代码实现类
 * 
 * @author baolj
 * @date Nov 15, 2007
 */
public class UserInfoDaoHibernate extends BaseDao implements UserInfoDao {

	/**
	 * 新建用户信息
	 * 
	 * @param userInfo
	 *            用户信息对象
	 */
	public void createUserInfo(UserInfo userInfo) {
		this.getHibernateTemplate().save(userInfo);
	}

	/**
	 * 删除用户信息
	 * 
	 * @param userInfoList
	 *            用户信息对象列表
	 */
	public void deleteUserInfosByIds(List userInfoList) {
		this.getHibernateTemplate().deleteAll(userInfoList);
	}

	/**
	 * 获取用户信息
	 * 
	 * @param id
	 *            用户编号
	 * @return 用户信息对象
	 */
	public UserInfo retrieveUserInfoById(final Long id) {
		return (UserInfo) this.getHibernateTemplate().get(UserInfo.class, id);
	}

	/**
	 * 通过用户名获取用户信息
	 * 
	 * @param userName
	 *            用户名
	 * @return 用户信息对象
	 */
	public UserInfo retrieveUserInfoByUsername(String userName) {
		if (userName == null) {
			return null;
		}
		String sql = "from UserInfo userInfo where userInfo.userName = '"
				+ userName + "'";
		List userInfos = this.getHibernateTemplate().find(sql);
		if (userInfos == null || userInfos.size() == 0) {
			return null;
		}
		return (UserInfo) userInfos.get(0);
	}

	/**
	 * 列表显示用户信息
	 * 
	 * @param page
	 *            分页参数
	 * @return 用户信息列表
	 */
	public List retrieveUserInfos(final Page page) {

		return this.getHibernateTemplate().executeFind(
				new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				StringBuilder hql = new StringBuilder(
						"from UserInfo userInfo where userInfo.groupId = ");
				hql
						.append(UserInfoConstants.USER
								+ " order by userInfo.userId");
				Query query = session.createQuery(hql.toString());
				return query.setFirstResult(page.getFirstResult())
						.setMaxResults(page.getPageSize()).list();
			}
		});
	}

	/**
	 * 获取用户信息列表
	 * 
	 * @param ids
	 *            用户信息编号
	 * @return 用户信息列表
	 */
	public List retrieveUserInfosByIds(final String[] ids) {
		return this.getHibernateTemplate().executeFind(
				new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				StringBuilder hql = new StringBuilder(
						"from UserInfo userInfo where ");
				for (int i = 0; i < ids.length; i++) {
					hql.append("userInfo.userId = " + ids[i]);
					if (i != ids.length - 1) {
						hql.append(" or ");
					}
				}
				Query query = session.createQuery(hql.toString());
				return query.list();
			}
		});
	}

	/**
	 * 统计用户信息数量
	 * 
	 * @return 用户信息对象数量
	 */
	public int retrieveUserInfosCount() {
		return (Integer) getHibernateTemplate().execute(
				new HibernateCallback() {

					public Object doInHibernate(Session session)
							throws HibernateException, SQLException {
						StringBuilder hql = new StringBuilder(
								"select count(*) from UserInfo userInfo "
										+ "where userInfo.groupId = ");
						hql.append(UserInfoConstants.USER);
						Query query = session.createQuery(hql.toString());
						return query.uniqueResult();
					}
				});
	}

	/**
	 * 更新用户信息对象
	 * 
	 * @param userInfo
	 *            用户信息对象
	 */
	public void updateUserInfo(UserInfo userInfo) {
		this.getHibernateTemplate().update(userInfo);
	}

	/**
	 * 判断用户信息是否存在
	 * 
	 * @param id
	 *            用户编号
	 * @return 用户信息是否存在
	 */
	public boolean isUserInfoExisted(Long id) {
		Object userInfo = this.getHibernateTemplate().get(UserInfo.class, id,
				LockMode.NONE);
		this.getHibernateTemplate().clear();
		return userInfo == null ? false : true;
	}

}

⌨️ 快捷键说明

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