SSH-Hibernate:hql与criteria


  hql:(Hibernate Query Languge,Hibernate 查询语言)查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式.

  语法:[select/update/delete……] from Entity [where……] [group by……] [having……] [order by……]

public List<Category> findAll() {
	String hql = "from Category";
	List<Category> list = this.getHibernateTemplate().find(hql);
	return list;
	}


         上面的代码是在Spring框架中的写法,另外就需要四步得到Session、编写HQL语句、创建Query对象(Query接口是HQL 查询接口。它提供了各种的查询功能)、执行查询,得到结果:

    sessionFactory = new Configuration().configure().buildSessionFactory();

    session = sessionFactory.openSession();

    String hql = “from Street”;

    Query query = session.createQuery(hql);

    List<Street> list = query.list();

   Criteria 查询

  Criteria 查询采用面向对象方式封装查询条件,又称为对象查询;

 就是对SQL 语句进行封装,采用对象的方式来组合各种查询条件

 由Hibernate 自动产生SQL 查询语句

 (1).没使用Spring框架的写法;

 Criteria由Hibernate Session进行创建

      SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

      Session session = sessionFactory.openSession();

      Criteria criteria = session.createCriteria(User.class);

      List result = criteria.list();

      Iterator it = result.iterator();


 (2)使用Spring框架的写法:

import org.hibernate.criterion.DetachedCriteria;

 

DetachedCriteria criteria=DetachedCriteria.forClass(ObjectEntity.class);

criteria.add(Restrictions.eq("propertyName", propertyValue));

List result=getHibernateTemplate().findByCriteria(criteria);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值