hibernate 查询
hibernate操作的是对象 orm对象关系模型
1.查询一
/**
* select street.sname,street.sid from Street as street
* 查询得到的是一个 Object[]
*/
/*List<Object[]> list = session.createQuery("select street.sname,street.sid from Street as street").list();
for (Object[] objects : list) {
System.out.println(objects[0]+"+"+objects[1]+"+");
}*/
/**
*在Street类里面重写了一个构造方法new Street(street.sname,street.sid)
* select new Street(street.sname,street.sid) from Street as street
* 查询得到的是一个Street对象
*/
List<Street> list = session.createQuery("select new Street(street.sname,street.sid) from Street as street").list();
2. 模糊查询
String hql = "from Street as street where street.sname like ?";//占位符
List<Street> list = session.createQuery(hql).setString(0, "%海%").list();
3.参数查询
String hql = "from Street as street where street.sid>3";
List<Street> list = session.createQuery(hql).list();
4.对象关联查询
String hql = "select provinces from Street street,Provinces provinces where street.provinces=provinces and street.sname='山路'";
List<Provinces> list = session.createQuery(hql).list();
5.分页查询
String hql = "from Street";
Query query = session.createQuery(hql);
query.setFirstResult(0);//开始
query.setMaxResults(3);//页面大小
List<Street> list = query.list();
6.函数统计
String hql = "select count(street) from Street as street";
Query query = session.createQuery(hql);
7.排序查询
String hql = "select street from Street as street order by street.sid";
Query query = session.createQuery(hql);
List<Street> list = query.list();
8.对象查询
Criteria c = session.createCriteria(Street.class);
if(null !=street){
if(null!=street.getSname()){
c.add(Restrictions.like("sname", street.getSname(),MatchMode.ANYWHERE));//模糊查询。查询 sname 中像 street.getSname()的
}
if(0!=street.getSid()){
c.add(Restrictions.ge("sid",street.getSid()));//street.getSid()大于等于sid
}
// if(0!=street.getSid()){
// c.add(Restrictions.le("sid",street.getSid()));//street.getSid()小于等于sid
// }
}
c.addOrder(Order.asc("sid"));//可以增加多个排序规则
// c.addOrder(Order.desc("sid"));//可以增加多个排序规则
hUtil.sessionClose(session);
return c.list();
9.查询
Street street = (Street)session.get(Street.class, sid);
10.添加
Provinces provinces = new Provinces();
provinces.setPid(pid);
provinces.setPname(pname);
session.save(provinces);
11.更新
street = (Street)session.load(Street.class, sid);
street.setSname(sname);
session.update(street);
12.删除
Street street = (Street)session.get(Street.class, id);
session.delete(street);