Hibernate的增删改查(基于getCurrentSession)

我会带着你远行 2022-07-17 00:16 303阅读 0赞

博主在学习到hibernate的时候对原本的sql增删改查有一点疑问,特别是了解到getcurrentsession的时候,对查询单个数据,修改数据方面很困惑,今天查到一篇文章,特地转载到博客,和大家分享!

  1. public class UserDaoImpl implements UserDao {
  2. @Autowired
  3. private SessionFactory sessionFactory;
  4. //登录
  5. public User selectUser(User user) throws Exception {
  6. Query query = sessionFactory.getCurrentSession().createQuery("from User u where u.name=? and u.password=?");
  7. query.setString(0, user.getName());
  8. query.setString(1, user.getPassword());
  9. List list = query.list();
  10. if(list==null||list.size()==0){
  11. throw new RuntimeException("查询失败");
  12. }
  13. return list.get(0);
  14. }
  15. //查询所有
  16. public List getAllUsers() throws Exception {
  17. Query query = sessionFactory.getCurrentSession().createQuery("from User");
  18. List list = query.list();
  19. return list;
  20. }
  21. //单个查询
  22. public User getUser(Integer id) throws Exception {
  23. return (User) sessionFactory.getCurrentSession().createQuery("from User u where u.id ="+id).uniqueResult();
  24. }
  25. //添加用户
  26. public void addUser(User user) throws Exception {
  27. System.out.println("11111111111111111"+user.getName());
  28. sessionFactory.getCurrentSession().save(user);
  29. }
  30. //删除用户
  31. public void delUser(Integer id) throws Exception {
  32. sessionFactory.getCurrentSession().createQuery("delete User u where u.id="+id).executeUpdate();
  33. }
  34. //修改用户
  35. public void updateUser(User user) throws Exception {
  36. Session session = sessionFactory.getCurrentSession();
  37. session.beginTransaction();
  38. String hql = ("update User u set u.name = ?,u.password = ?,u.loginDate = ? where u.id = ?");
  39. Query query = session.createQuery(hql);
  40. query.setParameter(0, user.getName());
  41. query.setParameter(1, user.getPassword());
  42. query.setParameter(2, user.getLoginDate());
  43. query.setParameter(3, user.getId());
  44. query.executeUpdate();
  45. session.getTransaction().commit();
  46. }
  47. }

发表评论

表情:
评论列表 (有 0 条评论,303人围观)

还没有评论,来说两句吧...

相关阅读