Hibernate实验四:HQL应用编程.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate实验(四):HQL应用编程 姚远 2012-10-13 最后更新时间:2012-10-23 实验目的: 熟练掌握Eclipse中数据源的配置。 熟练掌握Hibernate配置、理解配置文件内容。 熟悉掌握反向工程的概念,并能完成反向工程的相关ORMapping操作。 熟悉应用Hibernate架构技术完成基本数据库应用项目开发。 进一步强化采用分层模式的软件开发。 实验内容: 在开发以”SQL语句”为核心的数据库访问系统中,常见编写的SQL语句如insert、update、delete等相关语法要求掌握得非常灵活、丰富;select查询、子查询等和CRID语句大量结合,对于开发人员SQL技术应用的要求较高。 使用了ORmapping 技术后,虽然HQL也提供了非常丰富的语言特性,但如果完全类似使用“SQL”来使用HQL,则失去了面向对象开发的精髓。从此角度来说,在开发中无论是学习、应用、还是掌握HQL都相对比SQL要容易得多。还要清楚的一点是,在校学生SQL的水平要比想象中还要低很多。 如果使用Hibernate进行SQL查询,则更加背离使用ORmapping技术的初衷。 HQL(Hibernate Query Language, Hibernate 查询语言)提供了丰富灵活的查询特性, Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。TeacherManager类中,增加1个方法:viewSingleTeacher 具体源码如下: public Teacherinfo viewSingleTeacher(String tno) { SessionFactory myfactory = util.HibernateUtil.getSessionFactory(); Session session = myfactory.getCurrentSession(); Transaction mytransaction = session.beginTransaction(); try{ Query query = session.createQuery(from Teacherinfo where tno=:tno); query.setParameter(tno,tno); Teacherinfo newteacher = (Teacherinfo) query.uniqueResult();//确定返回的结果只有一个对象或者为null时候采用uniqueResult方法。 mit(); if(newteacher == null){ throw new Exception(没有找到相应的记录。); } else return newteacher; }catch(Exception ex){ mytransaction.rollback(); return null; } } 在TeacherManager类的main方法中测试上述代码的功能。 研究该代码 打开HQL Editor窗口 在下列窗口中点击HQL快捷按钮 在编辑区域中输入HQL语句: 一般形式:from 实体名 例:from Teacherinfo 返回Teacherinfo的所有实例(对象) 例:from Teacherinfo as t 返回Teacherinfo的所有实例(对象),t是别名。一般别名的开头部分小写 可以看到结果是5个对象,注意:此处不能理解为SQL中的5条记录,更不要与SQL语句执行后的显示结果混为一谈。 继续完成如下编码: 编写HQL语句,要求输出编号为00001的学生对象 二、联合查询 在实际应用中,如果某个查询结果要求来自不同的对象,则 在数据库设计上,要求这些表和表之间应是一对多(一对一)等的联系,也即是要給相应的表设计外键。 在反向工程映射时,会生成(出现)更为复杂的映射文件信息与实体类 在基于HQL的对象查询与结果获取上也相对复杂起来。 HQL查询语句可以有很多变化形式的语法来实现达到上述要求,但核心目的在于“取得来自不同实体对象中的数据”。 围绕下述具体应用要求作为实例进行HQL查询编程开发: 具体应用要求为:一个教师有不同的标签(一个标签可以应用于不同的教师) 如: 给予“张三”老师的标签是“伪清新很一般很一般随大流不自信”业务”数据): 表设计完毕后,在eclipse中进行相关配置,再编写并学会使用HQL Editor运行测试HQL语句的正确与

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档