时间:2021-07-01 10:21:17 帮助过:20人阅读
==============================================
一、添加数据方法代码:
public boolean add(User user){ Session session=sessionFactory.openSession(); Transaction transaction=null; try { transaction = (Transaction) session.beginTransaction(); session.save(user); transaction.commit(); return true; } catch (RuntimeException e) { transaction.rollback(); System.out.println("添加失败"); return false; }finally{ session.close(); } }
1、获得session会话
2、开始事务
3、保存对象
4、提交事务
5、若执行正确返回true
6、若为异常则回滚事务,返回false
7、最后关闭会话
================================================
二、通过name字段删除条目
public boolean deleteByName(String userName){ Session session = sessionFactory.openSession(); Transaction transaction=null; try { transaction = session.beginTransaction(); String hql="from User where name=‘"+userName+"‘"; User user=(User) session.createQuery(hql).uniqueResult(); session.delete(user); transaction.commit(); return true; } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; }finally{ session.close(); }
}
1、传入name字符
2、写hql语句,注意User是类名,因为hql是面向对象而不是面向数据库
3、通过hql语句取得唯一的对象user,若有多个对象则会抛出异常
4、删除对象
5、提交事务
==================================================================
三、通过id删除条目
public boolean deleteById(int id){ Session session = sessionFactory.openSession(); Transaction transaction=null; try { transaction = session.beginTransaction(); User user=(User) session.get(User.class, id); session.delete(user); transaction.commit(); return true; } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; }finally{ session.close(); } }
1、传入参数id
2、开启事务
3、根据id得到对象
4、删除对象
5、提交事务
===================================================
四、根据id更新条目
public boolean update(int id,User user){ Session session = sessionFactory.openSession(); Transaction transaction=null; try { transaction=session.beginTransaction(); User iUser=(User) session.get(User.class, id); iUser.setName(user.getName()); iUser.setNumber(user.getNumber()); iUser.setPassword(user.getPassword()); iUser.setPhone(user.getPhone()); session.update(iUser); transaction.commit(); return true; } catch (Exception e) { // TODO: handle exception System.out.println("更新失败"); transaction.rollback(); // throw e; return false; }finally{ session.close(); } }
1、根据id得到item中的iuser对象
2、将user参数的属性传入iuser
3、将iuser更新
4、提交事务
=================================================================
五、查询所有条目
public List<User> findAll(){ Session session = sessionFactory.openSession(); Transaction transaction=null; try { transaction= session.beginTransaction(); List<User> list= session.createCriteria(User.class).list();
// List<User> list=session.createQuery("from User").list();//hql方式 transaction.commit(); return list; } catch (Exception e) { // TODO: handle exception System.out.println("获取失败"); transaction.rollback(); return null; }finally{ session.close(); } }
1、开启事务
2、两种查询方式获得User的list
3、返回list
==============================================
==============================================
注意:
1、hql是面向对象的语句
2、一定要在事务中操作数据库
3、catch里面产生异常一定要回滚操作
4、要提交事务,否则不生效
5、一定要关闭会话资源
编写hibernate 操作数据库的dao层简单代码
标签:sys 操作 cat from exce hql blog hibernate dal