Welcome 微信登录

首页 / 操作系统 / 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();           }       }    }