好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

QBC数据检索在电子商务教学平台的应用.docx

8页
  • 卖家[上传人]:ji****81
  • 文档编号:310921436
  • 上传时间:2022-06-15
  • 文档格式:DOCX
  • 文档大小:24.74KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •     QBC数据检索在电子商务教学平台的应用    杨 勇1,黄 伟1,2,潘 沛1(1.吉首大学,湖南张家界427000;2.华中科技大学,湖北武汉430074)摘 要:在系统的开发应用中,如何做到快速查询数据是每个程序员头痛的事情,针对此种情况QBC数据检索便发挥出了它的功效主要研究和分析了基于Hibernate QBC高级数据检索在电子商务系统中的应用,以及对数据库查询的速度问题,特别是对多条记录和包含大量数据字段的记录的查询,通过实际应用中的测试,对查询效率的分析进行了说明Keys:电子商务;教学平台;Hibernate;持久化对象;HQL;QBCTP311. 11:A:1672-7800(2010)03-0188-020 引言电子商务教学实验平台系统是一个以模拟、仿真商务活动为手段,充分实现学生的创造性设计和特色设计,为学生提供虚拟商务环境,在教学中可以有效地实现应用性学习和创新性实验的教学目标跟一般的电子商务系统一样,学生可以在那里模拟网上购物、网上支付、网上学习等各种活动,从而资源的搜索显得极为重要Hibernate是一个面向Java环境的O/R Mapping数据库映射工具,它提供了HQL和QBC( Query by Criteria)两种数据检索方式。

      HQL主要是用于一些静态语句的查询,QBC是动态地查询用户指定的数据,它提供了更加面向对象的接口,查询语句相对其它方法简单,正是由于这些特性,决定了它在电子商务教学实验平台的地位1 Hibernate QBC1.1 QBC的工作原理QBC数据检索是通过Session创建Criteria,然后调用Cri-t eria接口的add()方法增加用户设置的查询条件,再调用Cri-teria的list()函数,以List的形式返回查询结果,其工作流程如图1所示,其中DetachedCriteria在分层项目中应用很大1.2 QBC查询步骤(1)调用Session的createCriteria()方法创建一个Criteria对[来自WW]象2)根据用户需要调用add()函数3)调用Criteria的list或者scroll方法,检索指定数据库,将查询结果放在I.ist或ScrollableResult中4)读取List或ScrollableResult,返回给用户指定要求的数据2 QBC在电子商务教学实验平台中的应用电子商务实验教学平台提供了真实互动的教学与实践环境,帮助学生在实践电子商务的过程中提高学习。

      系统模拟电子商务过程中涉猎到的众多网络背景,提供强大的网络服务平台,通过模拟B2C、C2C交易模式的电子商务活动,同时配套辅助网上虚拟银行、物流中心、CA认证等电子商务环境,配以教师强大的后台管理功能和教学工具,通过商城用户、销售部、采购部、财务部、储运部、物流运输、商城管理员等七大主要角色,使学生对大的电子商务环境和具体的电子商务应用有直观的认识为了更好的说明QBC查询的的特点,我们以电子商务教学实验平台中的会员注册、商品查询、订单查询为例,简单阐述它的实现2.1应用QBC实现会员注册在一个系统中不允许使用两个相同的用户名,这时可以通过以下代码来实现://创建DetachedCriteria实例DetachedCriteria data - DetachedCriteria. forClass(User.class)://设置查询条件,即查询用户名为name的对象data, add( Restriction. eqProperty(“username”.name));//关联sessionCriteria crit - data. getExecutable( session);//返回所有User对象链表List users - crit. list().根据users对象是否为空,判断用户名是否合法。

      2.2应用QBC实现商品搜索商品搜索是商品管理模块中一个非常重要的功能,幸运的的是QBC提供了多个条件的查询,用户如果想查询商品名称为name,价格在0~100之间的产品,QBC同样可以实现(如果Session可用)://创建Criteria对象Criteria crit—session. createCriteria(Product. class);//查询商品名称为name的产品crit. add( Restriction. eqProperty(“product name”,name》://在满足以上条件的结果中再查询价格在0~100之间的产品crit. add( Restriction. between(“price”,0,lOO));List products—crit. list();2.3应用QBC实现用户订单查询在数据库设计中,我们将订单管理模块分为两张表:订单信息表(Saleorder)和订单项信息表(Saleitem)在订单信息表中主要有ID(订单号)、UID(下单人的ID)、Odate(下单时间)、Status(订单状态)这时,我们应该把用户信息表和订单信息表连接起来,将正确的订单信息返回给客户。

      2.3.1定义持久化对象User对象的持久化public class User implements java. io. Serializable{private long uid;private String userName;//…省略了其它属性private Set saleorders—new HashSet();//…省略了构造函数//…省略了属性的setter、getter方法}SaleOrder对象的持久化定义为:public class SaleOrder implements java. io. Serializable{private long sid;//…省略了其它属性Private User user;//…省略了构造函数//…省略了属性的setter、getter方法}2.3.2建立对象/关系映射User对象的映射文件SaleOrder对象的映射文件:2.3.3 完成订单查询配置好映射文件之后,再运用QBC高级数据检索语句进行订单查询。

      我们以查询用户名为name、订单号为1的订单信息为例,简单介绍一下订单查询功能的实现代码如下:Criteria crit=session. createCriteria(User. class);crit. add( Restriction. eqProperty(“username” ,“name” ));//把saleorders集合属性的每个元素设置别名saleordercrit. createAlias(“saleorders”,“saleorder” );crit. add( Restriction. eq(“sid”,new Integer(1)));List results=crit. list():3测试结果为了增强说服力,这里利用一个订单查询的试验来说明在QBC高级检索语言的优越性,结果如表1所示4 结束语QBC是Hibernate提供的一种高级数据检索方法,相对于HQL查询方法而言,有优点也有不足QBC提供了更加面向对象的接口,在编译时会报告错误,并且允许用户扩展Criterion接口,因而它比较适合生成动态查询,但是它的可读性比较差,程序需肢解成Criterion实例才能运行。

      对于电子商务教学实验平台来说,运用Hibernate的QBC开发,不失为一种正确的选择Reference:[1] 刘洋,精通Hibernate[M].北京:电子工业出版社,2005.[2]蔡雪焘.Hibernate开发及整合应用大全[M].北京:清华大学出版社.2006.[3]黄佩虹,张冰晶.Hibernate-Java数据库持久层开发核心编程[Ml.北京:清华大学出版社,2008.[4]郭丹.利用Hibernate快捷实现全文检索[J].应用经验,2008(131).[5]赵东波.基于Hibernate的效率查询的研究和应用[J].科学技术与工程,2007(5).[6]翟高粤.Hibernate检索策略研究[J]. Computer Era,2008(8).[7] 张超,对象/关系映射技术的检索方式改进[J].计算机应用,2006 (2).[8]全俊林,扬开英,基于Compass的快速建立企业全文检索[J].福建电脑,2007(3).[9]胡明丽.电子商务教学模拟系统的研究与开发[D].中国海洋大学,2008.[10]庞英智,电子商务模拟教学系统的研究与实现[D].长春:吉林大学,2006.(:余晓)  -全文完-。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.