加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Hibernate框架的增删改查代码分析

发布时间:2021-11-24 19:01:59 所属栏目:教程 来源:互联网
导读:一 思路分析 在Hibernate框架的开发中,session对象是最核心的技术,增、删、该都需要用到,在通过id查询的时候用到的也是session对象,但是当有复杂查询的时候用到的是Query或Criteria类,这三个类都是在同一个包写的,在hibernate包下 二 Query类和Cirteri

一  思路分析
 
    在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();
 
           }
 
       }
 
    }
 
 

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读