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.
88 lines
3.5 KiB
88 lines
3.5 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();
|
|
} |