码迷,mamicode.com
首页 > Web开发 > 详细

hibernate基础的CRUD的操作

时间:2016-12-12 22:06:04      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:ssi   style   延迟加载   ict   creates   面试   创建对象   size   ***   

保存记录

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的操作

标签:ssi   style   延迟加载   ict   creates   面试   创建对象   size   ***   

原文地址:http://www.cnblogs.com/fengmingyue/p/6165623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!