首页 / 操作系统 / Linux / Hibernate框架的增删改查代码详解
一 思路分析 在Hibernate框架的开发中,session对象是最核心的技术,增、删、该都需要用到,在通过id查询的时候用到的也是session对象,但是当有复杂查询的时候用到的是Query或Criteria类,这三个类都是在同一个包写的,在hibernate包下二 Query类和Cirteria类的介绍1.HQL(hibernate Query Language)面向对象的查询语言,与sql不同,HQL中的对象名师区分大小写的, HQL中查的是对象而不是和表,并且支持多态;HQL主要通过Query来操作,Query的创建方式: Query q = session.createQuery(hql);l from Personl from User user where user.name=:namel from User user where user.name=:name and user.birthday < :birthday 2.Criteria Criteria是一种比HQL更面向对象的查询方式;Criteria的创建方式: Criteria crit = session.createCriteria(DomainClass.class); 简单属性条件如:criteria.add(Restrictions.eq(propertyName, value)), criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))三 代码分析1.添加任何一个对象 public static void add(Object obj) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction();// 开启事务 session.save(obj);// 没有更新数据库 tx.commit();// 执行提交事务的时候更新数据库 } finally { // 使资源得到释放 if (session != null) { session.close(); } } } 2.删除任何一个类中的文件 public static void delete(Object obj) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction();// 开启事务 session.delete(obj); // 删除之后为瞬时状态 tx.commit(); } finally { // 使资源得到释放 if (session != null) { session.close(); } } } 3.更新任何一个类中的对象 public static void update(Object obj) { Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction();// 开启事务 session.update(obj); tx.commit(); } finally { // 使资源得到释放 if (session != null) { session.close(); } } }