package cn.itbaizhan.dao.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Component; import cn.itbaizhan.dao.UserDao; import cn.itbaizhan.po.User; // 用户数据访问对象实现类 @Component("userDaoImpl") public class UserDaoImpl implements UserDao { //使用spring对Hibernate的模版 HibernateTemplate @Resource(name="hibernateTemplate") private HibernateTemplate hibernateTemplate; // 注入 HibernateTemplate 实例,用于数据库操作 // 删除用户 public void delete(User user) { hibernateTemplate.delete(user); } @SuppressWarnings("unchecked")//不检查,当编码可能存在警告时,比如安全警告,可以用它来消除 // 查询所有用户 public List findAllUsers() { // 使用HQL查询所有用户 String hql = "from User"; // 返回查询结果列表 return (List)hibernateTemplate.find(hql); } // 根据ID查询用户 public User findUserById(int id) { // 根据用户ID查找用户 User user = (User)hibernateTemplate.get(User.class, id); return user; } // 保存用户 // 保存用户信息的方法 public void save(User user) { System.out.println(user); hibernateTemplate.save(user); } // 更新用户信息 public void update(User user) { // 更新用户信息 hibernateTemplate.update(user); } // 获取Hibernate模版 public HibernateTemplate getHibernateTmeplate() { // 返回 HibernateTemplate 实例 return hibernateTemplate; } // 设置Hibernate模版 // 设置 HibernateTemplate 对象的方法 public void setHibernateTmeplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } // 根据登录名和密码获取用户 public User getUserByLoginNameAndPassword(String username, String password) { // 打印用户名到控制台 System.out.println("用户名"+username); // 根据用户名和密码查询用户,返回唯一匹配的用户对象 return (User) hibernateTemplate.getSessionFactory().openSession().createQuery( "from User u where u.username=? and u.password=?").setParameter(0, username).setParameter(1, password).uniqueResult(); } // 根据用户名查询用户 public User findUserByName(String username) { // 根据用户名查找用户 System.out.println("用户名:"+username); // 根据用户名查询唯一用户对象 return (User) hibernateTemplate.getSessionFactory().openSession().createQuery( "from User u where u.username=?").setParameter(0, username).uniqueResult(); } // 查询用户(根据用户名) public User queryUser(String username) { // 根据用户名查询用户信息 // 根据用户名查询用户信息 // 根据用户名从数据库中查询唯一用户对象 // 根据用户名查询唯一用户 return (User)hibernateTemplate.getSessionFactory().openSession().createQuery( "from User u where u.username=? ").setParameter( 0, username).uniqueResult(); } // 根据多个条件查询用户 public User findUserByinfo(String username, String name, String sex, String phone, String post, String address, String email) { // 根据提供的用户信息查询唯一的用户 // 根据用户名、姓名、性别、电话、职位、地址和邮箱查询唯一的用户信息 return (User)hibernateTemplate.getSessionFactory().openSession().createQuery( "from User u where u.username=? and u.name=? and u.sex=? and u.phone=? and u.post=? and u.address=? and u.email=?").setParameter( 0, username).setParameter(1,name).setParameter(2,sex).setParameter(3,phone).setParameter(4,post).setParameter(5,address).setParameter(6,email).uniqueResult(); }