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 Person

l       from User user where user.name=:name

l       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();

           }

       }

    }

相关推荐