hibernate基础的CRUD的操作

Posted 凌晨三点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate基础的CRUD的操作相关的知识,希望对你有一定的参考价值。

保存记录

session.save(customer);

根据主键进行查询

Customer customer = (Customer)session.get(Customer.class ,1);
Customer customer = (Customer)session.load(Customer.class,1);

  ***** get 和load的区别:(面试题)
        1.发送SQL的时机:
          load这个方法采用了一个技术.lazy延迟加载(懒加载).真正使用这个对象的数据的时候.(对象的数据不包括主键)
          get这个方法是立即检索.当执行session.get()方法的时候,马上发送SQL语句查询.

        2.返回的对象:
          load方法返回的是代理对象.
          get方法返回的是真实的对象.

        3.查询一个不存在的数据:
          load方法抛异常:ObjectNotFoundException.
          get方法返回null,在调用方法时抛出异常:NullPointException.

修改记录

//修改有两种方式 
//1手动创建对象的方式
Customer customer = new Customer();
customer.setId(2);
customer.setName("苍老师");
session.update(customer);
//这种方式如果有没有设置的属性,将这个属性的默认值存入了(不好)
//2先查询再修改的方式(推荐方式) Customer customer = (Customer) session.get(Customer.class, 1); customer.setName("凤姐"); session.update(customer);

删除记录

//删除记录有两种方式:
//1手动创建对象的方式
Customer customer = new Customer();
customer.setId(2);
session.delete(customer);
//2先查询再删除的方式 Customer customer = (Customer)session.get(Customer.class, 1); session.delete(customer);

查询所有
  HQL:Hibernate Query Language

//面向对象的写法
Query query = session.createQuery("from Customer where name = ?");
query.setParameter(0, "苍老师");
Query.list();

  QBC:Query By Criteria(条件查询)

Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("name", "凤姐"));
List<Customer> list = criteria.list();

  SQL

//第一种方式
SQLQuery query = session.createSQLQuery("select * from customer");
List<Object[]> list = query.list();
//第二种方式
SQLQuery query = session.createSQLQuery("select * from customer"); 
query.addEntity(Customer.class); 
List<Customer> list = query.list();










以上是关于hibernate基础的CRUD的操作的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate——主键生成策略CRUD 基础API区别的总结 和 注解的使用

SSH初体验系列--Hibetnate--2--crud操作

Hibernate中的CRUD操作

hibernate基础2:封装hibernateUtil,实现CRUD

搭建hibernate环境

Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例