Hibernate学习(4): Hibernate标准查询

使用 Criteria 对象的add()方法去添加一个标准查询的限制去查询结果。

//创建sessionFactory对象
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();;
//获得session对象
Session session = sessionFactory.getCurrentSession();
//通过session获得查询对象 criteria
//括号里面的参数就是查询条件了,表示我们查询的就是这个实体对象.
Criteria cr = session.createCriteria(Employee.class); 
//添加一个标准查询的限制   
cr.add(Restrictions.eq("salary", 2000));   
//这表示接收返回值. 
List results = cr.list();

事务:

public void listEmployees( ){
  Session session = factory.openSession();
  Transaction tx = null;
  try{
	 tx = session.beginTransaction();
	 session.save(customer);//之前已实例化好了的一个对象
	 tx.commit();
  }catch (HibernateException e) {
	 if (tx!=null) tx.rollback();
	 e.printStackTrace(); 
  }finally {
	 session.close(); 
  }
}

QBC(Query By Criteria) 常用限定方法

Restrictions.eq --> equal,等于.

Restrictions.ne --> not-equals,不等于

Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果

Restrictions.gt --> great-than > 大于

Restrictions.ge --> great-equal >= 大于等于

Restrictions.lt --> less-than, < 小于

Restrictions.le --> less-equal <= 小于等于

Restrictions.between --> 对应SQL的between子句

Restrictions.like --> 对应SQL的LIKE子句

Restrictions.in --> 对应SQL的in子句

Restrictions.and --> and 关系

Restrictions.or --> or 关系

Restrictions.isNull --> 判断属性是否为空,为空则返回true

Restrictions.isNotNull --> 与isNull相反

Restrictions.sqlRestriction --> SQL限定的查询

Order.asc --> 根据传入的字段进行升序排序

Order.desc --> 根据传入的字段进行降序排序

MatchMode.EXACT --> 字符串精确匹配.相当于"like 'value'"

MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like '%value%'"

MatchMode.START --> 字符串在最前面的位置.相当于"like 'value%'"

MatchMode.END --> 字符串在最后面的位置.相当于"like '%value'"

使用逻辑表达式创建 AND 或 OR 的条件组合

Criteria cr = session.createCriteria(Employee.class);

Criterion salary = Restrictions.gt("salary", 2000);
Criterion name = Restrictions.ilike("firstNname","zara%");

// To get records matching with OR condistions
LogicalExpression orExp = Restrictions.or(salary, name);
cr.add( orExp );

// To get records matching with AND condistions
LogicalExpression andExp = Restrictions.and(salary, name);
cr.add( andExp );

List results = cr.list();

Restrictions用法:http://blog.163.com/zhaowenchao_vip/blog/static/1715151442012411101741608/

你可能感兴趣的:(Hibernate)