使用 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/