基于Hibernate应用程序结合Tableviewer的 药品库存管理系统外文翻译资料

 2022-11-01 15:00:47

Computer Aided Drafting, Design and Manufacturing Volume 24, Number 2, June 2014, Page 48

CADDM

Hibernate Combined TableViewer in the Application of Medicines Inventory Management System

HONG Wen-qiang, CHE Chao, ZHANG Qiang, WEI Xiao-peng

Key Lab of Advanced Design and Intelligent Computing (Dalian University), Ministry of Education, Dalian 116622, China.

Abstract: To solve the data persistence problem in the management system, this paper used the popular object-relational mapping framework Hibernate to achieve the persistence layer which in a medicines inventory management system. This paper described the advantages and principles of the Hibernate, and then showed the written work of the configuration files, mapping files, persistent classes, etc. Finally, the paper showed how to display the specific data information in the TableViewer based on the Eclipse RCP framework. It is observed that, operating the objects in the Hibernate framework is more flexible and efficient than using JDBC directly. Ad in addition, the application based on Eclipse RCP framework can take over many excellent features of Eclipse, and the developers can improve their efficiency by these features.

Key words: Hibernate; data persistence; O/R mapping; Eclipse RCP; TableViewer; database

1 Introduction

With the rapid development of computer software technology, a variety of efficient, convenient, and powerful management systems come out, which of course include medicines inventory management system. In these systems, creating and maintaining the data persistence layer is an important part of these applications. Currently, there are many data persistence technology, such as JDBC, EJB, JDO, ORM, etc. In these techniques, JDBC is the most efficient, but laborious, tedious and difficult to maintain; EJB is powerful, but complex to use and inflexible; JDO is not a lightweight encapsulation, the performance is not optimal enough[1,2]; ORM is not

only able to achieve the relation mapping that the objects of the application to the data of the database, but also allow the reuse of these objects, which makes the model can adapt to the changes better in the system, so it is very flexible. This paper used the popular ORM tool –Hibernate framework to solve the problem of persistence of the medicines inventory management systems and achieve the relation mapping between the objects and the tables of the database, and then combining with the component of Eclipse RCP TableViewer, displayed the data and

information. The development of the system, On the one hand, reflected the object-oriented ideology of the Hibernate in operating the database intuitively, on the other hand, reflected the excellent capability of Eclipse RCP on the development of desktop applications by showing the features of agile development, crossing platform, intelligent installation and upgrades, etc.

2 Hibernate

Hibernate enables developers to develop persistent classes following natural Object-oriented idioms including inheritance, polymorphism, association, composition, and the Java collections framework. Hibernate requires no interfaces or base classes for persistent classes and enables any class or data structure to be persistent. Hibernate supports lazy initialization, numerous fetching strategies and optimistic locking with automatic versioning and time stamping. Hibernate requires no special database tables or fields and generates much of the SQL at system initialization time instead of at runtime. Hibernate consistently offers superior performance over straight JDBC code, both in terms of developer productivity and runtime performance. Hibernate was designed to work in an application server cluster and

Project Item: Supported by National Natural Science Foundation of China (No.61370005,No.31170797), Liaoning Province Education Department Research Project Fund (No.L2011218).

Corresponding author: WEI Xiao-peng, Male, Professor, E-mail: xpwei@dlu.edu.cn.

HONG Wen-qiang et al., Hibernate Combined TableViewer in the Application of hellip; 49

deliver a highly scalable architecture. Hibernate scales well in any environment. Hibernate is well known for its excellent stability and quality, proven by the acceptance and use by tens of thousands of Java developers. Hibernate is highly configurable and extensible[4].

Fig.1 is the schematic view of the architecture of Hibernate, what can be seen how Hibernate works: the configuration file of Hibernate (Hibernate.cfg.xml) contains the initialization information and the driver information of JDBC; when the application access to the database through the Hibernate API, first reads the configuration file, and then finds out the mapping files of those classes through the configuration file; According to the mapping files, the application gets the corresponding classes, then the application completes the operation to the database[5].

Fig.1. Architecture overview of Hibernate.

3 The Application based on Hibernate

According to the actual situation, the group of using the medicines inventory management system is a number of single retail pharmacies, such as the individual countryside clinics, the school clinics, the rural health stations, etc. The objective of the system is to achieve informatization, visualization of these pharmacies management. The system will fully responsible for the invoicing information management, the inquiry statistics management, various forms management of the pharmacies. And the goal of the system is to avoid the disadvantages and inefficiencies of manual management, improving the effi

剩余内容已隐藏,支付完成后下载完整资料


基于Hibernate应用程序结合Tableviewer的

药品库存管理系统

《计算机辅助绘图设计与制造(英文版)》2014年6月第二刊第48卷

洪文强,车超,张强,魏晓鹏

先进设计与智能计算重点实验室(大连大学),教育部,大连116622,中国。

摘 要

为了解决在管理系统中的数据持久性问题,本文采用了流行的对象关系映射框架Hibernate实现持久层,来设计一个医学药品库存管理系统。本文详细的介绍了Hibernate的优势和原理,以及显示配置文件,书面工作映射文件的持久化类,等。最后,本文展示了如何在基于Eclipse RCP框架TableViewer显示具体的数据信息。根据长期的观察,在Hibernate框架上直接对对象进行操作,比直接使用JDBC进行操作要更加的灵活和高效。除此之外,基于Eclipse RCP框架的计算机应用可以集成Eclipse的许多优良的特性,而开发商通过这些功能可以提高开发设计的工作效率。

关键词:Hibernate;数据持久层;O/R映射;Eclipse RCP TableViewer;数据库;

1引言

随着计算机软件技术的飞速发展,各种高效、便捷、强大的管理系统不断问世,其中,当然包括许多医用药品库存管理系统。在这些系统中,创建和维护数据持久层是这些应用程序的重要组成部分。目前,有很多的数据持久化技术,如常见的JDBC、EJB、JDO,ORM,ETC等等其他技术。在这些技术中,JDBC是使用起来最高效的,但操作起来非常费力,繁琐并且难以维持;EJB是最强大的,但复杂的使用方法让它难以被大多数用户灵活的使用;JDO不是一个轻量级封装,并且性能不是足够的优秀[1,2],;ORM不仅仅能够实现应用对象的关系映射到数据库的数据,而且还允许这些对象的重用,这使得模型能够适应在系统中变化的状态,所以它是非常灵活的。本文采用流行的ORM工具——Hibernate框架来解决药品的库存管理系统的持久性问题,实现对象和数据库表之间的映射关系,然后结合Eclipse RCP tableviewer组件、数据显示和能力在Eclipse RCP开发桌面应用程序展示了敏捷开发,跨平台的特点,智能安装和升级,等等。

2 Hibernate简介

Hibernate允许开发者使用通用的面向对象的习惯用语创建持久化类,其中包括继承,多态性,关联,组成,以及常用的各种java集合框架。Hibernate持久化类不需要接口或基类,就可以做到使任何阶级或数据结构是持久的。Hibernate支持快速的初始化等,拥有众多的抓取策略和自动锁与自动版本和时间戳。Hibernate不需要特殊的数据库或字段,它在系统初始化的时候产生大量的数据库信息,而不是在系统运行的时候。Hibernate提供了直接的JDBC代码一贯卓越的性能,无论是开发人员的工作效率和运行性能。Hibernate是设计被用来在一个应用服务集群和提供一个高度可扩展的体系结构,Hibernate在任何规模的系统以及任何环境都可以很好的使用。通过使用数以万计java开发者的实际使用,证明了Hibernate拥有出色的稳定性和质量。除此之外,Hibernate还是高度可配置和可扩展的[ 4 ]

图1是Hibernate架构的示意图,从图中,我们可以看到Hibernate工作的配置文件的相关信息:Hibernate(Hibernate、CFG、XML)包含初始化信息以及JDBC驱动程序信息;当应用程序通过Hibernate API执行对数据库的访问操作时,首先会读取相关配置文件,然后找出这些类的映射文件与配置文件;根据这些映射文件,应用程序获取相应的类,最后应用程序再完成对数据库的相关操作[ 5 ]

图 1.Hibernate架构概述

3基于Hibernate的应用

根据实际走访调查研究得知,本集团所编写的药品库存管理系统的使用对象,主要是一些个体户开设的零售药店,如个别农村家庭医生开设的死人小诊所,各个中小学的医务室,农村卫生站等。本药品库存管理系统的设计目标是实现医药库存管理的信息化,实现对这些药店的可视化管理。该系统制作完成之后,将用来全面负责进药品销存信息管理,查询统计管理,以及各种形式的药房管理。系统的设计目标,是摆脱以往传统使用的手工记录药品库存信息的管理方法的缺点和低效的弊端所导致的库存管理效率限制,提高库存管理的效率,降低人工管理的成本费用,使药店获得最大的经济效益。

该药品库存管理系统是基于目前被广泛使用的Eclipse RCP框架,结合传统的C/S(客户端/服务器)结构设计编写而成,系统功能模块的总体图如图2所示。

图 2.系统功能框图

3.1建立数据表之间的关系

为了显示处理路径的过程以及顺序,本文的编码采用直接编码的编码方式,反映过程序列。对于每一个染色体,染色体上的基因的数目是过程 SS数,n是总进程数。具体的编码可以被描述为[ K1,K2,hellip;,Kn],KJ(j = 1,2,hellip;,n)是进程数。

图 3. 采购管理的数据库表关系模型

3.2 Hibernate的配置文件和映射文件

3.2.1配置文件

Hibernate的配置文件主要是已经完成的SessionFactory,其中包含了配置URL、用户名、密码的数据库,和JDBC驱动程序类、持续类等负载映射的持久类[ 7 ]文件。在程序进行初始化的时候,Hibernate会自动找到该文件,并读取它的配置信息。在配置文件中,有一个名称是“show_sql”的属性,最好是将它设置为“true”开头,那样的话,控制台将会显示SQL语句,这是为了方便Hibernate发送调试信息。

3.2.2映射文件

完成配置文件后,我们需要生成相应的映射文件。这些生成的映射文件的主要作用,是将相应的类的属性及其关系映射到数据库表的字段和关系中,使开发人员能够实现面向对象的操作。映射文件可以通过“Hibernate映射文件”对话框中直接产生,因此它操作起来的时候是非常方便快捷的。

由于本篇文章的排版空间有所限制,因此本文不一一列举整个药品库存管理系统的详细的程序设计代码,在这里,我们只选取其中比较典型的buymedlist类(采购管理类)为例子,向各位读者说明如何针对类中的一些参数,进行相关的设置,详细的设置方法与信息请参加以下部分源代码:

lt;hibernate-mapping package='cn.edu.jxcms.model'gt;

lt;class name='BuyMedList' table='BUY_MED_LIST'gt;

lt;meta attribute='sync-DAO'gt;falselt;/metagt;

lt;id name='Id' type='integer' column='ID'gt;

lt;generator class='identity'/gt;lt;/idgt;

lt;property name='BuyAmount'

column='BUY_AMOUNT'

type='integer'not-null='false' length='10'/gt;

lt;property name='BuyTime'

column='BUY_TIME'

type='timestamp' not-null='false' length='29' /gt;

lt;many-to-one name='Buyer' lazy='false'

column='BUYER_ID' class='Buyer'

not-null='false'gt;lt;/many-to-onegt;

lt;many-to-one name='Medicines' lazy='false'

column='MEDICINES_ID' class='Medicines'

not-null='false'gt;lt;/many-to-onegt;

通过以上的程序段,我们可以看出,类的名字“BuyMedList”对应的表名是“BUY_MED_LIST”,以及类的属性也对应于表中的列。

该段程序中,lt;many-to-onegt;部分定义了BuyMedList的顾客与药物的关系是多对一的关系,即多个顾客都可以买相同的一种药品。lazy = 'false'语句意味着禁用延迟加载,所以当程序加载buymedlist对象时,根据不同的药品类别的对象ID和顾客类的对象ID,相应的对象也会被加载到内存中,之所以要进行这样的一个操作,主要是为了方便程序显示采购管理记录信息。

3.3实现持久类

完成配置文件和映射的Hibernate文件之后,我们就可以实现完整的类的持久性。在Hibernate框架中,持久类可以写为STA 标准的java bean。对于每个不同属性的数据库表,有一对get()和set()的方法,在相应的bean类中,方便其他对象操作数据库。图4显示了不同的持久类之间互相的关系(其中采购管理模块、get()以及set()方法已略去)。

图4. 持久类关系示意图

4 Eclipse RCP工具简介

Eclipse RCP(Rich Client Platform),中文名富客户机平台,顾名思义,客户开发的平台可以提供丰富的使用经验[ 8 ]。从本质上来说,RCP是Eclipse的一款插件,它的优点是发展打开桌面应用迅速,并且可以脱离Eclipse开发环境独立运行,大大减少了打包完成之后的软件产品内存占用量,使系统结构更加紧凑。同时,Eclipse是基于SWT/JFace标准化窗口工具包,它允许客户端基于本地操作系统为用户提供服务[ 9 ]

因此,为了满足用户日益增长的高要求,药品库存管理系统必须能够跨平台使用,具有原生感,具有较强的可扩展性,且必须可以方便的进行后续产品的升级操作等等,而Eclipse RCP是一个能够满足所有这些特征要求的平台。

4.1在tableviewer上显示数据的方法

JFace是SWT的一款扩展组件,它提供了一套强大的界面组件,而TableViewer就是其中一个重要并且典型的部件。编辑器(Editor)是显示在RCP框架上的信息的主要形式之一 ,要想创建一个TableViewer,首先必须先创建一个编辑器(Editor)。使用Eclipse的扩展机制后,通过org.eclipse.ui.editors这个扩展点创建编辑器(Editor),我们就可以在内部创建tableviewer组件。

同时,内容类、标签类两个类需要在tableviewer表上显示相关的应用数据。其中,内容类(IStructuredContentPro-vider.java):它的作用是从集合类中提取对象(数据库记录);标签类(itablelableprovider.java):其作用是从内容类提取的对象中提取相应的属性。

在做好以上一系列准备工作的基础上,在这里我们以采购管理模块为例,来详细的介绍如何结合某个数据源来显示数据信息码。

4.1.1创建purchaseeditor类

public class PurchaseEditor extends EditorPart

{ private TableViewer tableViewer;

//该列表用于存储数据库的记录

public static Listlt;BuyMedListgt; list = new ArrayListlt;BuyMedListgt;();

//创建tableviewer

private void createTableViewer(Composite parent) {......

//创建内容类

tableViewer.setContentProvider(new PurchaseContentProvider());

//创建标签类

tableViewer.setLabelProvider(new PurchaseLabelProvider());

// 把数据库中的数据用getbuymedlistdata()方法加入到列表

list = getBuyMedListData();

//tableviewer获取列表中的数据

tableViewer.setInput(list);

4.1.2创建内容类

这个类的主要功能是筛选和转换输入到表中的数据,有三种使用接口的方法来实现,其中getelement()是主要被使用的方法,而其他两种方法很少被使用,因此在此不做赘述。

创建内容类的方法参考下列程序段:

public class Purchas

剩余内容已隐藏,支付完成后下载完整资料


Computer Aided Drafting, Design and Manufacturing Volume 24, Number 2, June 2014, Page 48

CADDM

Hibernate Combined TableViewer in the Application of Medicines Inventory Management System

HONG Wen-qiang, CHE Chao, ZHANG Qiang, WEI Xiao-peng

Key Lab of Advanced Design and Intelligent Computing (Dalian University), Ministry of Education, Dalian 116622, China.

Abstract: To solve the data persistence problem in the management system, this paper used the popular object-relational mapping framework Hibernate to achieve the persistence layer which in a medicines inventory management system. This paper described the advantages and principles of the Hibernate, and then showed the written work of the configuration files, mapping files, persistent classes, etc. Finally, the paper showed how to display the specific data information in the TableViewer based on the Eclipse RCP framework. It is observed that, operating the objects in the Hibernate framework is more flexible and efficient than using JDBC directly. Ad in addition, the application based on Eclipse RCP framework can take over many excellent features of Eclipse, and the developers can improve their efficiency by these features.

Key words: Hibernate; data persistence; O/R mapping; Eclipse RCP; TableViewer; database

1 Introduction

With the rapid development of computer software technology, a variety of efficient, convenient, and powerful management systems come out, which of course include medicines inventory management system. In these systems, creating and maintaining the data persistence layer is an important part of these applications. Currently, there are many data persistence technology, such as JDBC, EJB, JDO, ORM, etc. In these techniques, JDBC is the most efficient, but laborious, tedious and difficult to maintain; EJB is powerful, but complex to use and inflexible; JDO is not a lightweight encapsulation, the performance is not optimal enough[1,2]; ORM is not

only able to achieve the relation mapping that the objects of the application to the data of the database, but also allow the reuse of these objects, which makes the model can adapt to the changes better in the system, so it is very flexible. This paper used the popular ORM tool –Hibernate framework to solve the problem of persistence of the medicines inventory management systems and achieve the relation mapping between the objects and the tables of the database, and then combining with the component of Eclipse RCP TableViewer, displayed the data and

information. The development of the system, On the one hand, reflected the object-oriented ideology of the Hibernate in operating the database intuitively, on the other hand, reflected the excellent capability of Eclipse RCP on the development of desktop applications by showing the features of agile development, crossing platform, intelligent installation and upgrades, etc.

2 Hibernate

Hibernate enables developers to develop persistent classes following natural Object-oriented idioms including inheritance, polymorphism, association, composition, and the Java collections framework. Hibernate requires no interfaces or base classes for persistent classes and enables any class or data structure to be persistent. Hibernate supports lazy initialization, numerous fetching strategies and optimistic locking with automatic versioning and time stamping. Hibernate requires no special database tables or fields and generates much of the SQL at system initialization time instead of at runtime. Hibernate consistently offers superior performance over straight JDBC code, both in terms of developer productivity and runtime performance. Hibernate was designed to work in an application server cluster and

Project Item: Supported by National Natural Science Foundation of China (No.61370005,No.31170797), Liaoning Province Education Department Research Project Fund (No.L2011218).

Corresponding author: WEI Xiao-peng, Male, Professor, E-mail: xpwei@dlu.edu.cn.

HONG Wen-qiang et al., Hibernate Combined TableViewer in the Application of hellip; 49

deliver a highly scalable architecture. Hibernate scales well in any environment. Hibernate is well known for its excellent stability and quality, proven by the acceptance and use by tens of thousands of Java developers. Hibernate is highly configurable and extensible[4].

Fig.1 is the schematic view of the architecture of Hibernate, what can be seen how Hibernate works: the configuration file of Hibernate (Hibernate.cfg.xml) contains the initialization information and the driver information of JDBC; when the application access to the database through the Hibernate API, first reads the configuration file, and then finds out the mapping files of those classes through the configuration file; According to the mapping files, the application gets the corresponding classes, then the application completes the operation to the database[5].

Fig.1. Architecture overview of Hibernate.

3 The Application based on Hibernate

According to the actual situation, the group of using the medicines inventory management system is a number of single retail pharmacies, such as the individual countryside clinics, the school clinics, the rural health stations, etc. The objective of the system is to achieve informatization, visualization of these pharmacies management. The system will fully responsible for the invoicing information management, the inquiry statistics management, various forms management of the pharmacies. And the goal of the system is to avoid the disadvantages and inefficiencies of manual management, improving the effi

剩余内容已隐藏,支付完成后下载完整资料


基于Hibernate应用程序结合Tableviewer的

药品库存管理系统

《计算机辅助绘图设计与制造(英文版)》2014年6月第二刊第48卷

洪文强,车超,张强,魏晓鹏

先进设计与智能计算重点实验室(大连大学),教育部,大连116622,中国。

摘 要

为了解决在管理系统中的数据持久性问题,本文采用了流行的对象关系映射框架Hibernate实现持久层,来设计一个医学药品库存管理系统。本文详细的介绍了Hibernate的优势和原理,以及显示配置文件,书面工作映射文件的持久化类,等。最后,本文展示了如何在基于Eclipse RCP框架TableViewer显示具体的数据信息。根据长期的观察,在Hibernate框架上直接对对象进行操作,比直接使用JDBC进行操作要更加的灵活和高效。除此之外,基于Eclipse RCP框架的计算机应用可以集成Eclipse的许多优良的特性,而开发商通过这些功能可以提高开发设计的工作效率。

关键词:Hibernate;数据持久层;O/R映射;Eclipse RCP TableViewer;数据库;

1引言

随着计算机软件技术的飞速发展,各种高效、便捷、强大的管理系统不断问世,其中,当然包括许多医用药品库存管理系统。在这些系统中,创建和维护数据持久层是这些应用程序的重要组成部分。目前,有很多的数据持久化技术,如常见的JDBC、EJB、JDO,ORM,ETC等等其他技术。在这些技术中,JDBC是使用起来最高效的,但操作起来非常费力,繁琐并且难以维持;EJB是最强大的,但复杂的使用方法让它难以被大多数用户灵活的使用;JDO不是一个轻量级封装,并且性能不是足够的优秀[1,2],;ORM不仅仅能够实现应用对象的关系映射到数据库的数据,而且还允许这些对象的重用,这使得模型能够适应在系统中变化的状态,所以它是非常灵活的。本文采用流行的ORM工具——Hibernate框架来解决药品的库存管理系统的持久性问题,实现对象和数据库表之间的映射关系,然后结合Eclipse RCP tableviewer组件、数据显示和能力在Eclipse RCP开发桌面应用程序展示了敏捷开发,跨平台的特点,智能安装和升级,等等。

2 Hibernate简介

Hibernate允许开发者使用通用的面向对象的习惯用语创建持久化类,其中包括继承,多态性,关联,组成,以及常用的各种java集合框架。Hibernate持久化类不需要接口或基类,就可以做到使任何阶级或数据结构是持久的。Hibernate支持快速的初始化等,拥有众多的抓取策略和自动锁与自动版本和时间戳。Hibernate不需要特殊的数据库或字段,它在系统初始化的时候产生大量的数据库信息,而不是在系统运行的时候。Hibernate提供了直接的JDBC代码一贯卓越的性能,无论是开发人员的工作效率和运行性能。Hibernate是设计被用来在一个应用服务集群和提供一个高度可扩展的体系结构,Hibernate在任何规模的系统以及任何环境都可以很好的使用。通过使用数以万计java开发者的实际使用,证明了Hibernate拥有出色的稳定性和质量。除此之外,Hibernate还是高度可配置和可扩展的[ 4 ]

图1是Hibernate架构的示意图,从图中,我们可以看到Hibernate工作的配置文件的相关信息:Hibernate(Hibernate、CFG、XML)包含初始化信息以及JDBC驱动程序信息;当应用程序通过Hibernate API执行对数据库的访问操作时,首先会读取相关配置文件,然后找出这些类的映射文件与配置文件;根据这些映射文件,应用程序获取相应的类,最后应用程序再完成对数据库的相关操作[ 5 ]

图 1.Hibernate架构概述

3基于Hibernate的应用

根据实际走访调查研究得知,本集团所编写的药品库存管理系统的使用对象,主要是一些个体户开设的零售药店,如个别农村家庭医生开设的死人小诊所,各个中小学的医务室,农村卫生站等。本药品库存管理系统的设计目标是实现医药库存管理的信息化,实现对这些药店的可视化管理。该系统制作完成之后,将用来全面负责进药品销存信息管理,查询统计管理,以及各种形式的药房管理。系统的设计目标,是摆脱以往传统使用的手工记录药品库存信息的管理方法的缺点和低效的弊端所导致的库存管理效率限制,提高库存管理的效率,降低人工管理的成本费用,使药店获得最大的经济效益。

该药品库存管理系统是基于目前被广泛使用的Eclipse RCP框架,结合传统的C/S(客户端/服务器)结构设计编写而成,系统功能模块的总体图如图2所示。

图 2.系统功能框图

3.1建立数据表之间的关系

为了显示处理路径的过程以及顺序,本文的编码采用直接编码的编码方式,反映过程序列。对于每一个染色体,染色体上的基因的数目是过程 SS数,n是总进程数。具体的编码可以被描述为[ K1,K2,hellip;,Kn],KJ(j = 1,2,hellip;,n)是进程数。

图 3. 采购管理的数据库表关系模型

3.2 Hibernate的配置文件和映射文件

3.2.1配置文件

Hibernate的配置文件主要是已经完成的SessionFactory,其中包含了配置URL、用户名、密码的数据库,和JDBC驱动程序类、持续类等负载映射的持久类[ 7 ]文件。在程序进行初始化的时候,Hibernate会自动找到该文件,并读取它的配置信息。在配置文件中,有一个名称是“show_sql”的属性,最好是将它设置为“true”开头,那样的话,控制台将会显示SQL语句,这是为了方便Hibernate发送调试信息。

3.2.2映射文件

完成配置文件后,我们需要生成相应的映射文件。这些生成的映射文件的主要作用,是将相应的类的属性及其关系映射到数据库表的字段和关系中,使开发人员能够实现面向对象的操作。映射文件可以通过“Hibernate映射文件”对话框中直接产生,因此它操作起来的时候是非常方便快捷的。

由于本篇文章的排版空间有所限制,因此本文不一一列举整个药品库存管理系统的详细的程序设计代码,在这里,我们只选取其中比较典型的buymedlist类(采购管理类)为例子,向各位读者说明如何针对类中的一些参数,进行相关的设置,详细的设置方法与信息请参加以下部分源代码:

lt;hibernate-mapping package='cn.edu.jxcms.model'gt;

lt;class name='BuyMedList' table='BUY_MED_LIST'gt;

lt;meta attribute='sync-DAO'gt;falselt;/metagt;

lt;id name='Id' type='integer' column='ID'gt;

lt;generator class='identity'/gt;lt;/idgt;

lt;property name='BuyAmount'

column='BUY_AMOUNT'

type='integer'not-null='false' length='10'/gt;

lt;property name='BuyTime'

column='BUY_TIME'

type='timestamp' not-null='false' length='29' /gt;

lt;many-to-one name='Buyer' lazy='false'

column='BUYER_ID' class='Buyer'

not-null='false'gt;lt;/many-to-onegt;

lt;many-to-one name='Medicines' lazy='false'

column='MEDICINES_ID' class='Medicines'

not-null='false'gt;lt;/many-to-onegt;

通过以上的程序段,我们可以看出,类的名字“BuyMedList”对应的表名是“BUY_MED_LIST”,以及类的属性也对应于表中的列。

该段程序中,lt;many-to-onegt;部分定义了BuyMedList的顾客与药物的关系是多对一的关系,即多个顾客都可以买相同的一种药品。lazy = 'false'语句意味着禁用延迟加载,所以当程序加载buymedlist对象时,根据不同的药品类别的对象ID和顾客类的对象ID,相应的对象也会被加载到内存中,之所以要进行这样的一个操作,主要是为了方便程序显示采购管理记录信息。

3.3实现持久类

完成配置文件和映射的Hibernate文件之后,我们就可以实现完整的类的持久性。在Hibernate框架中,持久类可以写为STA 标准的java bean。对于每个不同属性的数据库表,有一对get()和set()的方法,在相应的bean类中,方便其他对象操作数据库。图4显示了不同的持久类之间互相的关系(其中采购管理模块、get()以及set()方法已略去)。

图4. 持久类关系示意图

4 Eclipse RCP工具简介

Eclipse RCP(Rich Client Platform),中文名富客户机平台,顾名思义,客户开发的平台可以提供丰富的使用经验[ 8 ]。从本质上来说,RCP是Eclipse的一款插件,它的优点是发展打开桌面应用迅速,并且可以脱离Eclipse开发环境独立运行,大大减少了打包完成之后的软件产品内存占用量,使系统结构更加紧凑。同时,Eclipse是基于SWT/JFace标准化窗口工具包,它允许客户端基于本地操作系统为用户提供服务[ 9 ]

因此,为了满足用户日益增长的高要求,药品库存管理系统必须能够跨平台使用,具有原生感,具有较强的可扩展性,且必须可以方便的进行后续产品的升级操作等等,而Eclipse RCP是一个能够满足所有这些特征要求的平台。

4.1在tableviewer上显示数据的方法

JFace是SWT的一款扩展组件,它提供了一套强大的界面组件,而TableViewer就是其中一个重要并且典型的部件。编辑器(Editor)是显示在RCP框架上的信息的主要形式之一 ,要想创建一个TableViewer,首先必须先创建一个编辑器(Editor)。使用Eclipse的扩展机制后,通过org.eclipse.ui.editors这个扩展点创建编辑器(Editor),我们就可以在内部创建tableviewer组件。

同时,内容类、标签类两个类需要在tableviewer表上显示相关的应用数据。其中,内容类(IStructuredContentPro-vider.java):它的作用是从集合类中提取对象(数据库记录);标签类(itablelableprovider.java):其作用是从内容类提取的对象中提取相应的属性。

在做好以上一系列准备工作的基础上,在这里我们以采购管理模块为例,来详细的介绍如何结合某个数据源来显示数据信息码。

4.1.1创建purchaseeditor类

public class PurchaseEditor extends EditorPart

{ private TableViewer tableViewer;

//该列表用于存储数据库的记录

public static Listlt;BuyMedListgt; list = new ArrayListlt;BuyMedListgt;();

//创建tableviewer

private void createTableViewer(Composite parent) {......

//创建内容类

tableViewer.setContentProvider(new PurchaseContentProvider());

//创建标签类

tableViewer.setLabelProvider(new PurchaseLabelProvider());

// 把数据库中的数据用getbuymedlistdata()方法加入到列表

list = getBuyMedListData();

//tableviewer获取列表中的数据

tableViewer.setInput(list);

4.1.2创建内容类

这个类的主要功能是筛选和转换输入到表中的数据,有三种使用接口的方法来实现,其中getelement()是主要被使用的方法,而其他两种方法很少被使用,因此在此不做赘述。

创建内容类的方法参考下列程序段:

public class Purchas

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[141471],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。