CN103049251A - 一种数据库持久层装置及数据库操作方法 - Google Patents

一种数据库持久层装置及数据库操作方法 Download PDF

Info

Publication number
CN103049251A
CN103049251A CN2011103149194A CN201110314919A CN103049251A CN 103049251 A CN103049251 A CN 103049251A CN 2011103149194 A CN2011103149194 A CN 2011103149194A CN 201110314919 A CN201110314919 A CN 201110314919A CN 103049251 A CN103049251 A CN 103049251A
Authority
CN
China
Prior art keywords
database
pel
dao
generates
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103149194A
Other languages
English (en)
Other versions
CN103049251B (zh
Inventor
王磊建
孔令军
刘涛
刘岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201110314919.4A priority Critical patent/CN103049251B/zh
Publication of CN103049251A publication Critical patent/CN103049251A/zh
Application granted granted Critical
Publication of CN103049251B publication Critical patent/CN103049251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种数据库持久层装置及数据操作方法,其中,该装置包括:图元域模块,用于提供图元编辑环境,并接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;图元代码映射与代码生成域模块,用于解析图元域模块生成的图元描述文件,生成对应的POJO以及DAO;数据库域模块,用于将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。本发明实施例可以实现应用程序设计中持久化层POJO和DAO的代码的自动生成,这大大减少了应用程序数据库持久化层的工作量,提高了开发效率。

Description

一种数据库持久层装置及数据库操作方法
技术领域
本发明涉及移动通信技术领域,尤其涉及一种数据库持久层装置及数据操作方法。
背景技术
在应用程序设计中,数据库持久层的架构设计经历着不断的变化。
最初的数据库持久层让上层应用直接使用类似于Java数据库连接(JavaData Base Connection,JDBC)的接口与底层数据库通讯,如图1示,结构化查询语言(Structured Query Language,SQL)码到处出现在业务层的程序代码之中,这样的好处是代码执行效率很高,对于小型应用程序或者原型,这样是可行的。而其重大缺点是业务逻辑与数据操作紧密耦合,这意味着任何的改变(例如对某一个数据库表的一列重新命名或者是要移植到另外一种数据库系统),都将导致业务层代码的重新编译和部署。这对于一个商业化的应用程序来说,当然是无法接受的。
于是,如图2所示的数据库持久层的架构应运而生;在这种数据库持久层的体系结构中,业务类的SQL语句被封装到了一个或者多个的“数据类”中,由这些“数据类”来负责与数据库的交互动作,数据库层面的改动将不会导致业务逻辑层发生变化。这种方法的典型代表是微软公司的ADO(ActiveX DataObject)技术。
在数据操作层上,随着面向对象技术的日益普及和广泛使用,对象关系映射(Object Relational Mapping,ORM)技术逐步成为数据库持久层的技术方向。以业界主流的数据库持久层框架Hibernate为例,其架构具体表现如图3所示,数据操作层的ORM映射模块负责将存储对象模型与关系型数据库中的表相映射;数据操作接口模块负责将对象模型存储到底层的关系型数据库系统中;而数据库中间件则负责以一致性的上层应用接口来屏蔽底层具体的数据库系统差异。
传统的程序设计中关于数据库生成和使用的步骤。通常包括:
1)开发者生成数据库表;
在程序设计中,开发者需要通过数据库管理系统(DataBase ManagementSystem,DBMS)或者是数据库设计工具(例如DBDesigner等)进行数据库表的设计。
2)手动撰写简单Java对象(Plain Old Java Object,POJO);
如图三中所述,在数据操作层面上需要有一个ORM映射模块来进行对象模型和RDS表之间进行映射(ORM映射模块负责将存储对象模型与关系型数据库中的表相映射),POJO就是将会与数据库表进行映射的数据对象。下面举一个POJO的例子如下:
Figure BDA0000099459080000031
3)在POJO中手动撰写Annotation或者撰写Xml配置文件;
所谓Annotation,就是上述Person代码类中以符号起头的文字行;
Entity
Table(name=″Person″)
类似于Hibernate的数据库持久化框架会读取POJO中的Annotation,或者读取Xml配置文件,从去获得去数据库通信和数据存取动作所需要的必需信息;
Xml配置文件的举例如下所示:
Figure BDA0000099459080000041
4)手动撰写POJO的数据访问对象(DataAccess Objects,DAO);
DAO类是负责进行POJO存取的代码类,它是一个接口,DAO在上层应用与底层的数据库中间件之间进行数据的通讯,完成POJO的CRUD(包括create,retrieve,update,and delete,常用于指数据库或者软件系统中持久层的基本功能);一个典型的DAO声明举例如下:
Figure BDA0000099459080000051
5)使用POJO的DAO进行数据的存取;
上层应用使用DAO接口,实现POJO的数据存取动作。
从上面描述的步骤中可以看到,利用现有的数据库持久层的架构,程序设计人员在进行数据库相关的开发工作中,需要做非常繁杂的工作。例如开发者要通过一些数据库设计工作来生成数据库表,然后需要使用代码编辑工具人工生成POJO和与之对应的Annotation或者XML配置文件,开发者还需要使用代码编辑工具来生成存取POJO的DAO接口类。由于过程需要开发者参与到所有的环节并进行大量的代码编写,存在设计开发者的工作量较大,设计开发效率较低的问题。
发明内容
本发明实施例提供了一种数据库持久层生成装置及方法,用以解决使用现有数据库持久层架构存在的设计开发者工作量较大,设计开发效率较低的问题。
基于上述问题,本发明实施例提供的一种数据库持久层装置,包括:
图元域模块,用于提供图元编辑环境,并接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
图元代码映射与代码生成域模块,用于解析所述图元域模块生成的图元描述文件,生成对应的简单Java对象POJO以及数据访问对象DAO;
数据库域模块,用于将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
本发明实施例提供的一种使用本发明实施例提供的上述装置进行数据库操作的方法,包括:
接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
对生成的图元描述文件进行解析,生成对应的简单Java对象POJO以及数据访问对象DAO;
将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
本发明实施例提供的上述数据库持久层装置及数据操作方法,图元域模块提供图元编辑环境,接收用户的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;图元代码映射与代码生成域模块解析所述图元域模块生成的图元描述文件,自动生成对应的POJO以及DAO;数据库域模块将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。本发明实施例能够为数据库的开发者提供了图元编辑环境,使得用户可以以面对对象的思维,以图元化的方式,设计出数据对象,设计过程更为简单,更为重要的是,本发明实施例可以实现POJO和DAO代码的自动生成,这大大减少了数据库开发者的工作量,提高了开发效率。
附图说明
图1为现有技术中的数据库持久层结构图之一;
图2为现有技术中的数据库持久层结构图之二;
图3为现有技术中的数据库持久层结构图之三;
图4为本发明实施例提供的数据库持久层装置的结构图之一;
图5为本发明实施例提供的数据库持久层装置的结构图之二;
图6为本发明实施例提供的图元编辑环境的示意图;
图7为本发明实施例提供的生成POJO的流程图;
图8为本发明实施例提供的生成DAO的流程图;
图9为本发明实施例提供的生成SQL代码的流程图;
图10为本发明实施例提供的数据库持久层装置的结构图之三;
图11为本发明实施例提供的数据库操作方法的流程图。
具体实施方式
下面结合说明书附图,对本发明实施例提供的一种数据库持久层装置及数据操作方法的具体实施方式进行说明。
本发明实施例提供的一种数据库持久层装置,如图4所示,具体包括:
图元域模块401,用于提供图元编辑环境,并接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
图元代码映射与代码生成域模块402,用于解析所述图元域模块生成的图元描述文件,生成对应的简单Java对象(POJO)以及数据访问对象(DAO);
数据库域模块403,用于将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
进一步地,如图5所示,上述图元域模块401,具体包括:
图元编辑环境模块4011,用于提供用户进行数据对象设计的图元编辑环境;
图元编译模块4012,用于由所述图元编辑环境模块调用,将用户设计的以图元形式表示的数据对象进行编译,生成设定格式的图元描述文件。
下面对图元编译环境模块4011进行详细的说明,图元编辑环境模块为使用者提供数据库建模的图元化设计界面,在这个编辑环境中,使用者可以进行如下的工作:
1、根据应用的需求,对数据对象进行设计,如图6所示,在图元化设计界面中,包含各种进行建模的工具例如选择(select)选项、ID关联选项、ISA关联选项、属性连接选项、实体类型选项等,用户可以利用图元化将实体模型图拖拽画在数据对象编辑界面中,并通过形象化的操作,完成建立实体的属性、设定属性类型、建立实体关系映射图的操作。
2、将设计完成的以图元形式表示的数据对象从图元化设计界面中导出,或者从外部导入的图元描述文件,以便在图元话设计界面中以图元形式显示。
3、图元化设计界面中包含设定代码生成的接口,使用者可以选择生成底层的对应着不同类型的数据库的POJO以及DAO。
图元编译模块4012,负责将用户在图元编辑环境中设计的图元进行编译,生成系统自定义的文件格式例如XML文档的格式。图元编译模块4012也会将用户从外部导入的图元描述文件反向编译,生成对应的数据对象,并在图元编译模块提供的图元编辑环境中以图元形式进行显示,以便用户进行进一步地编辑和修改。
进一步地,如图5所示,上述图元代码映射与代码生成域模块402,具体包括:
POJO对象生成模块4021,用于根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,逐行解析所述图元域模块生成的图元描述文件,将其转换生成对应的POJO的代码;
DAO对象生成模块4022,用于根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,选择DAO的模板,并根据POJO对象生成模块对该图元描述文件的解析结果,替换所选择的DAO模板中的关键字,组装生成对应的DAO的代码。
由于现有的数据库开发框架中,程序设计人员一般不会再使用传统的SQL语句与数据库交互,而是直接通过与POJO对应的DAO数据存取对象接口,将POJO的数据存入数据库或者取出数据库,因此,在本发明实施例中,图元代码映射与代码生成域模块402的主要任务为生成POJO和DAO的代码。
由于POJO代码实际上是用户在图元编辑环境设计的数据对象的代码化呈现,因此,POJO对象生成模块4021会根据用户在图元编辑环境中发出的指令,例如用户输入的指示生成输入符合特定的关系型或非关系型数据库规范格式(例如JPA(Java Persistence API)、NoSqlDB等规范)代码的指令,将用户在图元编辑环境中设计出来的数据图元对象转变成符合规范格式(例如JPA、NoSqlDB等)的POJO。
伴随着云计算的广泛使用以及Web2.0网站的大量出现,非关系型数据库的使用越来越普及,因此POJO对象生成模块4021除了要能够生成与关系型数据库对应的POJO之外,也要能够生成非关系型数据库对应的POJO。
关系型数据库以及非关系型数据库对应的POJO的生成工作是自动完成的。其实现流程如图7所示:
1、用户在图元编辑环境中按照业务需求进行数据对象的设计;
2、按照规定算法,对用户设计的图元化数据对象进行编译,生成以XML文档为表现形式的图元描述文件;
3、根据开发者指令,按照相应的规范格式(JPA规范,NoSQL规范,Hibernate框架等),逐条解析图元描述文件;
4、按照图元描述文件的解析结果,转换成符合对应规范模式的POJO的代码,组合生成POJO。
现有的数据库开发框架中,用户通过与POJO对应的DAO数据存取对象接口,将POJO的数据存入数据库或者取出数据库,因此,在本发明实施例中,DAO也是图元模型的代码呈现;DAO对象生成模块4022会根据用户在图元编辑环境中发出的指令,例如用户输入的指示生成输入符合特定的关系型或非关系型数据库规范格式(例如JPA、NoSqlDB等规范)代码的指令,将用户在图元编辑环境中设计出来的数据图元对象转变成符合规范格式(例如JPA、NoSqlDB等)的DAO。
同样地,本发明实施例中,DAO对象生成模块4022除了要能够生成与关系型数据库对应的DAO之外,也要能够生成非关系型数据库对应的DAO。
关系型数据库以及非关系型数据库对应的DAO的生成工作是自动完成的。其实现流程如图8所示:
1’、用户在开发工具中按照业务需求进行数据对象的设计;
2’、按照规定算法,对用户设计的图元化数据对象进行编译,生成以XML文档为表现形式的图元描述文件;
3’、根据开发者指令,按照相应的规范格式(JPA规范,NoSQL规范,Hibernate框架等),解析图元描述文件;
4’、按照相应的规范格式,在DAO代码模板中选择合适的DAO模板;
5’、按照图元描述文件的解析结果,替换DAO模板中的关键字,组装生成对应的DAO的代码。
以背景技术中提到的DAO的代码为例,可以按照图元描述文件的解析结果,替换掉“public void save(Admin entity)”语句中的“Admin entity”’的关键字,完成DAO模板中所有关键字的替换后,就生成了对应的DAO的代码。
进一步地,如图5所示,上述数据库域模块403,具体包括:
对象关系映射模块4031,用于按照预设的映射策略,将生成的POJO映射成为数据库中的数据库表;
SQL代码生成与映射模块4032,用于根据对象关系映射模块4031映射的数据库表,生成创建数据库表的SQL代码并执行,完成数据库表的创建;以及根据生成的DAO定义的操作请求,将DAO映射成为对数据库中数据库表及数据库表数据成员的操作的SQL代码并执行,完成对数据库的相关操作。
上述对象关系映射模块4031所使用的映射策略可以是对象与数据库表之间可能是一对一的映射,也可能是多个对象映射成为一张数据库表等,其原则是尽量减少数据库表之间的冗余和复杂关联,这将有利于后续的数据查询和存取动作,但对于采用何种具体的策略和映射算法,本发明实施例并不作限定。同时,对象关系映射模块4031负责调用SQL代码生成域映射模块4032,从而实现将POJO的存取操作映射成为对于数据库表以及表中数据成员的操作。
具体来说,上述SQL代码生成域映射模块4032,负责根据POJO和DAO,生成最终的SQL代码,从而实现对底层数据库的操作。除了根据对象关系映射模块4031映射出来的数据库表,生成对应的SQL语句,完成将数据库和数据库表的创建(Create)操作之外,还需要根据DAO中的操作请求例如选择(select)、更新(update)和删除(delete)等,将其映射成对应的SQL操作语句,其实现流程如图9所示:
1”、开发者在开发工具中按照业务需求进行数据对象的设计;
2”、按照规定算法,对开发者设计的图元化数据对象进行编译,生成以XML文档为表现形式的图元描述文件;
3”、根据开发者指令,按照相应的规范格式(JPA规范,NoSQL规范,Hibernate框架等),解析图元描述文件;并生成POJO的代码;
4”、根据生成的POJO的代码,进行ORM映射;
5”、根据ORM映射,生成SQL操作语句;进行数据库的创建以及数据库表的创建工作;
6”、通过SQL语句,完成数据库操作;
较佳地,为了使得本发明实施例提供的数据库持久层装置能够与底层采用不同通讯协议和数据格式的数据库(包括关系型数据库和非关系型数据库)进行通讯,如图5所示,数据库域模块在上述细分模块的基础上,增加数据库中间件模块4033,该模块用于为SQL代码生成与映射模块与采用不同通讯协议和数据格式的各底层数据库提供统一的通讯接口,能够屏蔽这些底层数据库之间的差异,而对上层的DAO呈现出统一的接口和使用方法。这将简化DAO的生成工作。
更近一步地,虽然本发明提供的上述数据库持久层装置中,POJO的代码、DAO的代码和SQL的代码都是自动生成的,出于为用户展示这些代码以用户对这些代码进行编辑、修改和调试的需要,在本发明实施例中,还可以在图5所示的架构的基础上,增加Java代码编译调试域模块和SQL代码编译调试域模块(如图10所示的架构图),其中:
Java代码编译调试域模块404,用于向用户提供显示、编辑和调试POJO以及DAO的代码的环境。
SQL代码编译调试域模块405,用于向用户提供显示、编辑和调试SQL代码的环境。
基于同一发明构思,本发明实施例还提供了一种使用本发明实施例提供的上述数据库持久层装置对数据库进行操作的方法,由于该方法所解决问题的原理与前述装置相似,因此该方法的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的使用本发明实施例提供的数据库持久层装置进行数据库操作的方法,如图11所示,包括下述步骤:
S1101、接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
S1102、对生成的图元描述文件进行解析,生成对应的POJO以及DAO;
S1103、将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
上述步骤S1102中,生成对应的POJO以及DAO,具体通过下述过程实现:
根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,逐行解析所生成的图元描述文件,将其转换生成对应的POJO的代码;
根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,选择DAO的模板,并根据对图元描述文件的解析结果,替换所选择的DAO模板中的关键字,组装生成对应的DAO的代码。
在上述步骤S1103中,按照预设的映射策略,将生成的POJO映射成为数据库中的数据库表;根据映射的数据表生成创建数据库表的SQL代码并执行,完成数据库表的创建;
根据生成的DAO定义的操作请求,将DAO映射成为对数据库中数据库表及数据库表数据成员的操作的SQL代码并执行,完成对数据库的相关操作。
较佳地,上述使用本发明实施例提供的数据库持久层装置进行数据库操作的方法,在接收到用户从外部导入所述图元编辑环境的图元描述文件时,进行反向编译,生成以图元形式表示的数据对象并显示给用户。
本发明实施例提供的上述数据库持久层装置及数据库操作方法,图元域模块提供图元编辑环境,接收用户的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;图元代码映射与代码生成域模块解析所述图元域模块生成的图元描述文件,自动生成对应的POJO以及DAO;数据库域模块将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。本发明实施例能够为数据库的开发者提供了图元编辑环境,使得用户可以以面对对象的思维,以图元化的方式,设计出数据对象,设计过程更为简单,更为重要的是,本发明实施例可以实现POJO和DAO的代码的自动生成,这大大减少了数据库开发者的工作量,提高了开发效率。
进一步地,本发明实施例提供的上述数据库持久层装置及数据库操作方法,还包括数据库中间件模块,屏蔽了底层不同类型数据库之间的差异,实现了对不同类型(包括关系型数据库和非关系型数据库)的操作。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种数据库持久层装置,其特征在于,包括:
图元域模块,用于提供图元编辑环境,并接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
图元代码映射与代码生成域模块,用于解析所述图元域模块生成的图元描述文件,生成对应的简单Java对象POJO以及数据访问对象DAO;
数据库域模块,用于将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
2.如权利要求1所述的装置,其特征在于,所述图元域模块,包括:
图元编辑环境模块,用于提供用户进行数据对象设计的图元编辑环境;
图元编译模块,用于由所述图元编辑环境模块调用,将用户设计的以图元形式表示的数据对象进行编译,生成设定格式的图元描述文件。
3.如权利要求2所述的装置,其特征在于,所述图元编译模块,还用于当接收用户从外部导入的图元描述文件时,进行反向编译,生成以图元形式表示的数据对象;
所述图元编辑环境模块,还用于将所述图元编译模块反向编译出的数据对象以图元形式显示给用户。
4.如权利要求1所述的装置,其特征在于,所述图元代码映射与代码生成域模块,包括:
POJO对象生成模块,用于根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,逐行解析所述图元域模块生成的图元描述文件,将其转换生成对应的POJO的代码;
DAO对象生成模块,用于根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,选择DAO的模板,并根据POJO对象生成模块对所述图元描述文件的解析结果,替换所选择的DAO模板中的关键字,组装生成对应的DAO的代码。
5.如权利要求1所述的装置,其特征在于,所述数据库域模块,包括:
对象关系映射模块,用于按照预设的映射策略,将生成的POJO映射成为数据库中的数据库表;
SQL代码生成与映射模块,用于根据所述对象关系映射模块映射的数据库表,生成创建数据库表的SQL代码并执行,完成数据库表的创建;以及根据生成的DAO定义的操作请求,将DAO映射成为对数据库中数据库表及数据库表数据成员的操作的SQL代码并执行,完成对数据库的相关操作。
6.如权利要求4所述的装置,其特征在于,所述数据库域模块,还包括:数据库中间件模块,用于为SQL代码生成与映射模块与采用不同通讯协议和数据格式的各底层数据库提供统一的通讯接口。
7.如权利要求5或6所述的装置,其特征在于,还包括:
Java代码编译调试域模块,用于向用户提供显示、编辑和调试所述POJO以及DAO代码的环境;
SQL代码编译调试域模块,用于向用户提供显示、编辑和调试所述SQL代码的环境。
8.一种使用如权利要求1所述的装置进行数据库操作的方法,其特征在于,包括:
接收用户在图元编辑环境中输入的对图元形式表示的数据对象的设计指令,对用户设计的数据对象进行编译,生成对应的图元描述文件;
对生成的图元描述文件进行解析,生成对应的简单Java对象POJO以及数据访问对象DAO;
将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作。
9.如权利要求8所述的方法,其特征在于,所述对生成的图元描述文件进行解析,生成对应的POJO以及DAO,包括:
根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,逐行解析所生成的图元描述文件,将其转换生成对应的POJO的代码;
并根据用户在图元编辑环境中输入的数据库持久层代码生成指令中设定的关系型或非关系型数据库的规范,选择DAO的模板,并根据对图元描述文件的解析结果,替换所选择的DAO模板中的关键字,组装生成对应的DAO的代码。
10.如权利要求8所述的方法,其特征在于,所述将生成的POJO映射成为数据库中的数据库表,以及根据生成的DAO,执行对数据库中数据库表及数据库表数据成员的操作,包括:
按照预设的映射策略,将生成的POJO映射成为数据库中的数据库表;根据映射的数据表生成创建数据库表的SQL代码并执行,完成数据库表的创建;
根据生成的DAO定义的操作请求,将所述DAO映射成为对数据库中数据库表及数据库表数据成员的操作的SQL代码并执行,完成对数据库的相关操作。
11.如权利要求8-10任一项所述的方法,其特征在于,还包括:
当接收到用户从外部导入所述图元编辑环境的图元描述文件时,进行反向编译,生成以图元形式表示的数据对象并显示给用户。
CN201110314919.4A 2011-10-17 2011-10-17 一种数据库持久层装置及数据库操作方法 Active CN103049251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110314919.4A CN103049251B (zh) 2011-10-17 2011-10-17 一种数据库持久层装置及数据库操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110314919.4A CN103049251B (zh) 2011-10-17 2011-10-17 一种数据库持久层装置及数据库操作方法

Publications (2)

Publication Number Publication Date
CN103049251A true CN103049251A (zh) 2013-04-17
CN103049251B CN103049251B (zh) 2015-10-07

Family

ID=48061904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110314919.4A Active CN103049251B (zh) 2011-10-17 2011-10-17 一种数据库持久层装置及数据库操作方法

Country Status (1)

Country Link
CN (1) CN103049251B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440130A (zh) * 2013-08-26 2013-12-11 成都金山数字娱乐科技有限公司 一种数据处理方法以及装置
CN103927338A (zh) * 2014-03-26 2014-07-16 网神信息技术(北京)股份有限公司 日志信息入库处理方法和装置
CN103942281A (zh) * 2014-04-02 2014-07-23 北京中交兴路车联网科技有限公司 一种对持久化存储的对象进行操作的方法及装置
CN104932904A (zh) * 2015-07-14 2015-09-23 福建农林大学 一种针对智能家居的可配置数据库编程模式
CN105373536A (zh) * 2014-08-19 2016-03-02 阿里巴巴集团控股有限公司 一种实现dao接口的方法及装置
CN105528424A (zh) * 2015-12-07 2016-04-27 普元信息技术股份有限公司 大数据环境下实现数据持久化的系统及方法
CN105808776A (zh) * 2016-03-29 2016-07-27 中国建设银行股份有限公司 一种分布式数据库的数据管理系统及方法
CN105893587A (zh) * 2016-04-06 2016-08-24 中国建设银行股份有限公司 白名单生成方法和相关的用于数据存取的装置及方法
CN109491649A (zh) * 2018-11-20 2019-03-19 北京千丁互联科技有限公司 Dao代码生成方法及计算机终端
CN109542409A (zh) * 2018-11-28 2019-03-29 中国海洋石油集团有限公司 一种基于面向对象设计思想的存储方法及装置
CN114356302A (zh) * 2022-03-15 2022-04-15 江苏数兑科技有限公司 一种基于Gremlin语言的持久层优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488722A (en) * 1993-05-28 1996-01-30 International Business Machines Corporation System and method for automating implementation and execution of constraint most likely to be violated in a database
US20050149907A1 (en) * 2003-12-08 2005-07-07 Greg Seitz Method and system to automatically generate software code
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101727324A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种代码生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488722A (en) * 1993-05-28 1996-01-30 International Business Machines Corporation System and method for automating implementation and execution of constraint most likely to be violated in a database
US20050149907A1 (en) * 2003-12-08 2005-07-07 Greg Seitz Method and system to automatically generate software code
CN101008952A (zh) * 2007-01-30 2007-08-01 华为技术有限公司 一种持久层生成方法及装置
CN101727324A (zh) * 2009-12-17 2010-06-09 中国电力科学研究院 一种代码生成方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
肖寒: "J2EE平台下代码自动生成技术研究", 《电脑知识与技术》 *
谭欢: "基于SSH架构的代码自动生成技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440130A (zh) * 2013-08-26 2013-12-11 成都金山数字娱乐科技有限公司 一种数据处理方法以及装置
CN103927338A (zh) * 2014-03-26 2014-07-16 网神信息技术(北京)股份有限公司 日志信息入库处理方法和装置
CN103942281B (zh) * 2014-04-02 2017-07-25 北京中交兴路车联网科技有限公司 一种对持久化存储的对象进行操作的方法及装置
CN103942281A (zh) * 2014-04-02 2014-07-23 北京中交兴路车联网科技有限公司 一种对持久化存储的对象进行操作的方法及装置
CN105373536A (zh) * 2014-08-19 2016-03-02 阿里巴巴集团控股有限公司 一种实现dao接口的方法及装置
CN105373536B (zh) * 2014-08-19 2019-01-18 阿里巴巴集团控股有限公司 一种实现dao接口的方法及装置
CN104932904A (zh) * 2015-07-14 2015-09-23 福建农林大学 一种针对智能家居的可配置数据库编程模式
CN105528424A (zh) * 2015-12-07 2016-04-27 普元信息技术股份有限公司 大数据环境下实现数据持久化的系统及方法
CN105528424B (zh) * 2015-12-07 2019-03-05 普元信息技术股份有限公司 大数据环境下实现数据持久化的系统及方法
CN105808776A (zh) * 2016-03-29 2016-07-27 中国建设银行股份有限公司 一种分布式数据库的数据管理系统及方法
CN105893587A (zh) * 2016-04-06 2016-08-24 中国建设银行股份有限公司 白名单生成方法和相关的用于数据存取的装置及方法
CN109491649A (zh) * 2018-11-20 2019-03-19 北京千丁互联科技有限公司 Dao代码生成方法及计算机终端
CN109542409A (zh) * 2018-11-28 2019-03-29 中国海洋石油集团有限公司 一种基于面向对象设计思想的存储方法及装置
CN114356302A (zh) * 2022-03-15 2022-04-15 江苏数兑科技有限公司 一种基于Gremlin语言的持久层优化方法

Also Published As

Publication number Publication date
CN103049251B (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
CN103049251B (zh) 一种数据库持久层装置及数据库操作方法
US8954480B2 (en) End-to-end interoperability and workflows from building architecture design to one or more simulations
US9886245B2 (en) Software development tool using a workflow pattern that describes software applications
CN101334728B (zh) 一种基于xml文档描述的界面生成方法和装置
CN101405729B (zh) 具有增量式视图维护的映射体系结构
CN101770363A (zh) 代码转换
Wimmer et al. A catalogue of refactorings for model-to-model transformations.
CN105335412A (zh) 用于数据转换、数据迁移的方法和装置
CN104679511A (zh) 基于MDE模型转换的MapReduce代码生成方法
CN103942228A (zh) 规则引擎、计算方法、业务系统及调用方法
US11238396B2 (en) High performance map editor for business analysts
CN101477462A (zh) 一种用于动态改变系统行为的模型驱动软件开发方法
CN104360859A (zh) 一种可视化的服务开发方法和系统
CN101208660A (zh) 代码转换
CN101499063A (zh) 基于跟踪的数据库模式演进方法及系统
CN103914290A (zh) 一种操作命令处理方法及装置
CN103488738A (zh) 一种自动实现java对象及数据表sql文件的方法及系统
CN112764743B (zh) 一种基于数据模型驱动自动生成软件的方法
Le et al. Domain-driven design using meta-attributes: A DSL-based approach
CN111367893A (zh) 数据库版本迭代的方法及装置
WO2018233673A1 (zh) 一种控制器中模型代码配置方法和装置、存储介质
CN113467785B (zh) 一种拟态数据库的sql转译方法和系统
Giachetti et al. Integration of domain-specific modelling languages and UML through UML profile extension mechanism.
CN104199675A (zh) 一种基于数据库参数利用的系统快速开发的系统
CN108845793A (zh) 一种orm设计方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant