英语移动学习资源系统Hibernate持久化设计

2014-02-20 01:18杜莲艳
电子测试 2014年16期
关键词:数据表实体对象

杜莲艳

(渤海大学大学外语教研部,辽宁锦州,121013)

英语移动学习资源系统Hibernate持久化设计

杜莲艳

(渤海大学大学外语教研部,辽宁锦州,121013)

移动学习资源系统建设是开展移动学习的基础,本文基于Hibernate框架进行持久化设计。进行数据结构设计,研究了资源类型、资源和资源明细等三个实体之间的关系,对基于SQLServer数据库管理系统设计表结构;研究了实现持久化的方法,以资源类型实体为例,设计了持久化类和映射文件,并对相关问题作了必要说明。本文的研究内容为大学英语移动学习资源系统建设提供支持。

大学英语;移动学习;学习资源系统;Hibernate;持久化

移动学习作为远程教育的第三个发展阶段,是继数字化学习之后出现的利用无线网络和移动通讯设备来获取学习资源和学习支持服务的又一新型学习模式,是教育技术领域研究的前沿和探讨的热点。移动学习是一种新型的学习模式,具有移动性、交互性、共享性和个性化学习等特点,能够体现英语教学实用性、知识性和趣味性相结合的原则,可以满足学习者在任何时问、任何地点获取任何内容的学习愿望,满足学生对移动学习、个性化学习和终身化学习的要求,逐渐成为一种备受欢迎的学习方式。移动学习资源是对现有学习资源的一种补充,是开展一切移动学习活动的基础。移动学习资源系统开发是开展移动学习至关重要的环节。英语教育非常适合移动学习,本文以数据结构设计为基础,基于Hibernate框架进行持久化设计,为大学英语移动学习资源系统建设提供支持。

1 数据结构设计

根据英语教学大纲的要求以及英语学习的实际需要,英语移动学习资源应包括听力资源、口语资源、阅读资源、写作资源、翻译资源、词汇资源、考试资源、评估资源、其他资源等内容。将学习资源在数据库中存储共需要三个实体,分别是资源类型(resourceType)、资源(resource)和资源明细(resourceDetail)。资源类型实体和资源实体之间是一对多的关联,即一种资源类型存在多种资源,一种资源只对应一种资源类型,如写作资源存在多个题目和可供学习的多个参考例文;资源实体和资源明细实体也是一对多的联系,即一个资源对应多个资源明细,而一个资源明细只对应一个资源,如某个阅读资源内容很多,为了方便移动学习,可以将该阅读资源分解为多个明细。根据以上分析,基于SQLServer数据库管理系统设计的表结构。

资源类型表结构如表1所示。

表1 资源类型表结构

资源表结构如表2所示。

表2 资源表结构

资源明细表结构如表3所示。

表3 资源明细表结构

2 实现持久化

Hibernate PO(持久化对象)由两部分构成,分别的持久化类和映射文件。

2.1 持久化类

对于Hibernate PO而言,通常一个持久化类被映射到一个数据表,而持久化类的属性则对应到数据表的列,因此系统实体表里包含了多少列,就意味着该实体对应持久化类包含多少个属性。以资源类型(resourceType)实体为例,PO实现代码如下:

PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。持久对象具有如下特点:和session实例关联;在数据库中有与之关联的记录,有相应的ID,在内存中有该对象,缓存中也有。Hibernate是从PO实例中取values的,所以即使Session关闭,也一样可以get/ set,可以进行跨Session的状态管理。

Hibernate中各po具有三种状态:①Transient瞬时状态,瞬时对象在内存孤立存在,是携带信息的载体,不和数据库的数据有任何关联关系,同样此时它没有和session有关联,可通过session的save()或saveOrUpdate()方法将瞬时对象与数据库相关联,并将数据对应的插入数据库中,此时该瞬时对象转变成持久化对象。②persistent持久化状态(通过get()、load()、find()、interate()得到的对象都是persistent状态),处于该状态的对象在数据库中具有对应的记录,并拥有一个持久化标识。如果是用hibernate的delete()方法,对应的持久对象就变成瞬时对象,即Transient的状态,因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。③detached脱管状态,当与某持久对象关联的session被关闭后,该持久对象转变为脱管对象。当脱管对象被重新关联到session上时,并再次转变成持久对象。脱管对象拥有数据库的识别值,可通过update()、saveOrUpdate()等方法,转变成持久对象。

2.2 映射文件

映射文件负责把持久化类映射到数据库表,并把持久化类的属性映射数据列。通过这种映射,允许程序以面向对象的方式操作Hibernate的PO,而Hibernate则负责把这种操作转换成底层的JDBC数据库访问。同样以资源类型(resourceType)实体为例,与上面PO实现对应的映射文件代码如下:

从上面的映射文件是把PO实体(ResourceType)映射到数据表(resourceType)。映射文件的根元素是class,每个class元素用于映射一个持久化类,在class元素中指定的table属性就是表明该持久化类映射的数据表。如果没有指定table属性,即该数据表的名称与持久化类的名称相同。class元素下包含了多个property属性,每个property属性映射一个持久化属性,即完成一个属性和一个数据字段之间的映射。

[1] 陈翠娥.移动学习资源教学设计研究[D].西南交通大学硕士学位论文,2012.

[2] 朱婷婷.移动学习资源设计研究[J].中国医学教育技术,2012,26(5):513-516.

[3] 孙益祥,陈琳.移动学习资源开发平台和工具的选择与评价[J].现代教育技术,2010,20(4):112-114.

[4] 陈天河.Struts、Hibernate、Spring集成开发宝典[M].电子工业出版社,2007.

[5] 教育部高等教育司.大学英语课程教学要求[M].北京:清华大学出版社,2007.

[6] 唐文娟,陈丽娜.基于Hibernate持久层性能优化方案的研究[J].智能计算机与应用,2012,2(1):56-58.

[7] 郭朗.Hibernate框架ORM常见数据关联分析[J].信息系统工程,2013,26(4):134.

[8] 浮尘俗世的博客.深入Hibernate的映射文件[EB/OL].http://blog.163.com/xiaokangzhijia@126/blog/stat ic/16595485620101126104433187/,2013-12-10.

Persistence design on English mobile learning resources system based on Hibernate

Du Lianyan
(Teaching and Research Institute of Foreign Language,Bohai University,Jinzhou,121013,China)

Mobile learning resources system is the basis of building a mobile learning.The paper studies persistence design based on Hibernate framework.Data structure design should be carried on,and studied the relationships among resources type,resources and details of resource,and designed table structure for database management system based SQLServer;then,studied the method to achieve persistence;taking entity of resources type as example,designed persistence classes and mapping files and made the necessary instructions for related issues.Content of this paper provides support for college English mobile learning resources system construction.

college English;mobile learning;learning resources system;Hibernate;persistence

杜莲艳(1977-),女,辽宁锦州人,讲师,硕士。研究方向:现代教育技术应用及英语语言文学教学.

猜你喜欢
数据表实体对象
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
前海自贸区:金融服务实体
基于列控工程数据表建立线路拓扑关系的研究
攻略对象的心思好难猜
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
基于熵的快速扫描法的FNEA初始对象的生成方法