Hibernate操作数据库的方式总结
hibernate查询数据库的方式基本包括一下四中
Session,Query,SqlQuery,Criteria
sessionfactory.getCurrentSession()
Void save(Object entity)
Void delete(Object entity)
Void update(Object entity)
Void saveorupdate(Object entity)
Object get(Class entityclass,Serializable pk)
Object load(Class entityclass,Serializable pk)
session.createQuery(String hqlstring)
Query.setParameter(String property,Object value)
Query.setParameter(int position,Object value)
session.createSqlQuery(String sqlstring)
继承自Query,添加了方法 SqlQuery addEntity(Class entityclass),将结果封装成实体对象,返回SqlQuery
session.createCriteria(Class entityclass)
criteria add(Craterion c)添加查询条件
Craterion分为几大类,都位于org.hibernate.criterion包下
继承于org.hibernate.criterion. Craterion. Example.create(Object entity);查询属性值和实体一致的记录;
负责返回Criteriation对象。包含大多数常用sql.如:and,or,like,between,eq,lt,gt,in等方法,这些方法都是static
所有聚合函数都用progections来实现。如:count(),avg(),sum(),max(),main()等。
static Property forName(String propertyName)负责创建Property对象。
session.createCriteria(vo.class).add(Example.create(entity)).list();
session.createCriteria(vo.class).add(Restrictions.eq(propertyname,value)).
add(Restrictions.like(propertyname,value)).
add(restrictions.between(propertyname,value1,value2)).list();
session.createCriteria(vo.class).add(Restrictions.like(propertyname,value)).
add(Restrictions.or(
Restrictions.eq("name","wang"),Restrictions.eq("name","zhang"))
).list();