📄 userdao.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 + -