userdaoimpl.java
来自「基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰」· Java 代码 · 共 491 行
JAVA
491 行
package com.yuanchung.sales.dao.user.impl;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.yuanchung.sales.constants.DataBaseTableName;
import com.yuanchung.sales.constants.HibernateEntityName;
import com.yuanchung.sales.dao.user.UserDAO;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.exception.SystemException;
import com.yuanchung.sales.model.Position;
import com.yuanchung.sales.model.Treeview;
import com.yuanchung.sales.model.admin.position.PositionRights;
import com.yuanchung.sales.model.admin.role.Role;
import com.yuanchung.sales.model.taskEvent.Event;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.model.userDefined.UserDefined;
import com.yuanchung.sales.model.userDefined.UserField;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
// 根据用户名和密码取得用户实体
public User getUser(String userName, String password)
throws DataAccessException {
String[] paramList = new String[2];
paramList[0] = userName;
paramList[1] = password;
List ret = null;
Iterator it = null;
try {
ret = getHibernateTemplate().find(
"from User u where u.userName=? and u.password=?",
paramList);
if (ret != null && ret.size() > 0) {
it = ret.iterator();
return (User) it.next();
}
return null;
} catch (HibernateException e) {
e.printStackTrace();
throw e;
}
}
// 查找所有的用户
public List getAll() throws DataAccessException {
return getHibernateTemplate().find("from User ");
}
// 保存用户
public void saveUser(User user) throws DataAccessException {
// 新添加的时候把用户的删除置为0;即可用用户 by 张明强
int deleteFlag = 0;
user.setDeleteFlag(deleteFlag);
// 添加 结束
getHibernateTemplate().save(user);
}
// 根据id查找用户
public User getUserById(int id) throws DataAccessException {
return (User) getHibernateTemplate().get(User.class, id);
}
public List<Treeview> getTreeViewToDept() throws DataAccessException {
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createSQLQuery(
"select * from treeview t where 1=1 and isLeader=0")
.addEntity(Treeview.class);
List<Treeview> list = query.list();
return list;
}
});
}
public void deleteTreeview(final Integer id) throws DataAccessException {
this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createSQLQuery("delete from treeview where id =" + id);
return null;
}
});
}
public void deleteUser(User user) throws DataAccessException {
try {
this.getHibernateTemplate().delete(user);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserContact(List list) throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(list);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserDefined(UserDefined userDefined)
throws DataAccessException {
try {
this.getHibernateTemplate().delete(userDefined);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserField(List list) throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(list);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserFilter(List list) throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(list);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserRights(List list) throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(list);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public void deleteUserRole(List list) throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(list);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
public List getUserContact(User user) throws DataAccessException {
return this.getHibernateTemplate().find(
"from UserContact where user=?", user);
}
public List getUserDefined(User user) throws DataAccessException {
return this.getHibernateTemplate().find(
"from UserDefined as ud where user=? order by ud.inDate desc",
user);
}
public List getUserField(UserDefined userDefined)
throws DataAccessException {
return this.getHibernateTemplate().find(
"from UserField where userDefined=?", userDefined);
}
public List getUserFilter(UserDefined userDefined)
throws DataAccessException {
return this.getHibernateTemplate().find(
"from UserFilter where userDefined=?", userDefined);
}
public List getUserRight(User user) throws DataAccessException {
return this.getHibernateTemplate().find("from UserRights where user=?",
user);
}
public List getUserRoleList(int userId) throws DataAccessException {
return this.getHibernateTemplate().find("from UserRole where userId=?",
userId);
}
/**
* 修改某个用户对象;
*/
public void editUser(User user) throws DataAccessException {
try {
getHibernateTemplate().update(user);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
// 根据父结点和姓名查找结点
public Treeview getTreeviewByFamilyNameAndParentId(String name, int parentId)
throws DataAccessException {
try {
return (Treeview) this.getHibernateTemplate().find(
"from Treeview as tv where tv.name=? and tv.parentId=?",
new Object[] { name, parentId }).get(0);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
// 根据岗位ID查找岗位
public Position getPositionById(int positionId) throws DataAccessException {
try {
return (Position) getHibernateTemplate().get(Position.class,
positionId);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
// 根据主键查找结点
public Treeview findTreeviewById(int id) throws DataAccessException {
return (Treeview) getHibernateTemplate().get(Treeview.class, id);
}
// --------------------------------------更新后-------------------------------------------------//
/**
* 保存用户自定义选项,抛出Hibernate DAO EXCEPTION
*/
public void saveUserDefined(UserDefined userDefined)
throws DataAccessException {
try {
getHibernateTemplate().save(userDefined);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
/**
* 保存用户显示字段
*
* @param userField
* @throws DataAccessException
*/
public void saveUserField(UserField userField) throws DataAccessException {
try {
getHibernateTemplate().save(userField);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
/**
* 查找最新用户
*
* @throws DataAccessException
*/
public User getUserLastest() throws DataAccessException {
try {
return (User) getHibernateTemplate()
.find(
"from "
+ HibernateEntityName.USER
+ " as u where u.id >= (select max(uu.id) from User as uu )")
.get(0);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
/**
*
* @return 最新创建的用户自定义选项
* @throws DataAccessException
*/
public UserDefined getUserDefinedLastest() throws DataAccessException {
try {
return (UserDefined) getHibernateTemplate()
.find(
"from UserDefined as ud where ud.id >= (select max(uu.id) from UserDefined as uu )")
.get(0);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
/**
* 根据岗位ID获取用户信息
*
* @param id
* @return
*/
public List<User> findByTreeviewId(int id) {
logger.debug("这般这般的ID值是多少?" + id);
List<User> users = new ArrayList();
try {
users = getHibernateTemplate().find(
"from " + HibernateEntityName.USER
+ " as u where u.treeview.id=" + id);
} catch (RuntimeException e) {
e.printStackTrace();
throw e;
}
return users;
}
public List<User> findByTreeviewIds(String ids) {
return getHibernateTemplate().find(
"from " + HibernateEntityName.USER
+ " as u where u.treeview.id in (" + ids + ")");
}
/**
* @function 删除用户
* @throws DataAccessException
*/
public void deleteUserPosttionList(List uPositionList)
throws DataAccessException {
try {
this.getHibernateTemplate().deleteAll(uPositionList);
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
throw new SystemException(e.getMessage());
}
}
/**
* 根据角色ID获取用户信息
*
* @param int
* @return List<User>
*/
public List<User> findByRoleId(int roleId, String familyName) {
String hql = " From " + HibernateEntityName.USER + " u";
hql += " Where u.id in";
hql += " (Select ur.userId From " + HibernateEntityName.USER_ROLE
+ " ur Where 1=1";
if (roleId != 0) {
hql += " And ur.roleId=" + roleId + ")";
}
if (familyName != null && !familyName.equals("")) {
hql += " And u.familyName like '%" + familyName + "%'";
}
List<User> users = this.getHibernateTemplate().find(hql);
return users;
}
public List<User> findAll(String familyName) {
String hql = "From " + HibernateEntityName.USER + " u where 1=1";
if (familyName != null && !familyName.equals("")
&& !familyName.equals("null")) {
hql += " and u.familyName like '%" + familyName + "%'";
}
List<User> users = this.getHibernateTemplate().find(hql);
return users;
}
/**
* 通过主键获取对象 author:张明强 time:2009-01-18
*/
public User findById(int userId) {
try {
User user = (User) getHibernateTemplate().get(
"com.yuanchung.sales.model.user.User", userId);
return user;
} catch (RuntimeException re) {
throw re;
}
}
/**
* 函数功能 初始化用户密码; time: 2008-12-26; author:张明强
*/
public void updatePassword(final int id, final String pw)
throws DataAccessException {
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createSQLQuery("update user set password='" + pw
+ "' where id=" + id);
query.executeUpdate();
return null;
}
});
}
/**
* 更新用户表的deleteFlag,如果是删除用户,则把deleteFlag置为1 author:张明强 time:2009-01-16
*/
public void updateDeleteFlag(User user) throws DataAccessException {
try {
this.getHibernateTemplate().merge(user);
} catch (Exception e) {
e.printStackTrace();
throw new SystemException(e.getMessage());
}
}
/**
* 根据岗位ID和姓名获取用户信息
*
* @param id
* @return
*/
public List<User> findByTreeviewIdAndFamilyName(int id, String familyName) {
List<User> users = new ArrayList();
try {
users = getHibernateTemplate()
.find(
"from " + HibernateEntityName.USER
+ " as u where u.treeview.id='" + id
+ "' and u.familyName like '%" + familyName
+ "%' ");
} catch (Exception e) {
e.printStackTrace();
}
return users;
}
/**
* 函数功能 通过userID获取部门; int userID 用户主键 return 部门名称 time: 2008-12-26;
* author:张明强
*/
public String getDepartmentName(final int userID) throws SystemException {
String departmentName = "";
List l = null;
l = this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
Query query = session
.createSQLQuery("select t.ParentId from treeview t, user u where u.id = '"
+ userID + "' and t.Id = u.treeview_Id");
return query.list();
}
});
String temp = l.get(0).toString();
final int parentID = Integer.parseInt(temp);
List list = null;
list = this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
Query query = session
.createSQLQuery("select Name from treeview where Id = '"
+ parentID + "'");
return query.list();
}
});
departmentName = list.get(0).toString();
return departmentName;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?