T07 QBC查询、多对多.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T07 QBC查询、多对多.ppt

课程目标 QBC(Query By Criteria)查询 基本Cretiria查询 Creteria连接查询 动态/组合查询 离线(DetachCriteria)查询 多对多关系 1.多对多数据库中的表示方法 2.对象之间的多对多关系 3.多对多配置 4.多对多关系的保存 5.多对多关系的删除 QBC查询(Query By Criteria) 通过将条件加入到Criteria实例中 Criteria实例是一个查询条件的容器 Criteria查询是更符合面向对象的编程方式 QBC查询(Query By Criteria) 查询所有员工 连接设定 HQL中预先抓取 Criteria查询设置预先抓取,与上面等效 QBC处理动态查询/组合查询 离线查询 public List getObjectsByQBC(DetachedCriteria dc) List list = null; try { session = HibernateSessionFactory.getSession(); tx = session.beginTransaction(); // 开启事务 Criteria criteria = dc.getExecutableCriteria(session); list = criteria.list(); mit(); } catch (HibernateException e) { // 捕捉例外 e.printStackTrace(); tx.rollback(); } finally { HibernateSessionFactory.closeSession(); } return list; } 员工查询实例 QBC统计 在QBC中可以用Projections实现统计,Projections有以下的方法: avg() rowCount() count() max() min() countDistinct() QBC统计 QBC去重复根元素 多对多关系配置 多对多数据库中的表示方法 角色对用户成员是多对多的关系 对象之间的多对多关系 多对多配置 多对多关系的保存 多对多关系的删除 总结 QBC(Query By Criteria)查询 基本Cretiria查询 Creteria连接查询 动态/组合查询 离线(DetachCriteria)查询 多对多关系 1.多对多数据库中的表示方法 2.对象之间的多对多关系 3.多对多配置 4.多对多关系的保存 5.多对多关系的删除 布置作业 根据员工姓名、电话、籍贯、学历查询员工 查询帐号禁用的员工 部门列表中列出该部门的员工数 Criteria criteria = session.createCriteria(Employee.class); List result = criteria.list(); from Department dept left join fetch dept.employees where dept.deptName like 开发% List list = session.createCriteria(Department.class) .setFetchMode(employees, FetchMode.JOIN) .add(Restrictions.like(deptName, 开发, MatchMode.START)).list(); HQL查询总是忽略配置文件中的预先抓取 FetchMode.JOIN 预先抓取 FetchMode.SELECT 延迟加载 FetchMode.DEFAULT 使用配置中的加载策略 private Employee emp; public String list(){ 。。。。。。 Criteria creteria = session.createCretira(Employee.class); //查询员工 creteria.setFetchMode(“dept”, FetchMode.JOIN); //级联抓取部门 creteria.setFetchMode(“userinfo”, FetchMode.JOIN); //级联抓取账号,可省略 if(emp!=null){ if(emp.getEmpName()!=null !emp.getEmpName().equals()){ creteria.add(Restrictions.like(“empName”, % + emp.getEmpName() + %)); } if(emp.

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档