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);