You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.7 KiB

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<User> findAllUsers() {
// 使用HQL查询所有用户
String hql = "from User";
// 返回查询结果列表
return (List<User>)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();
}