CN101008952A - 一种持久层生成方法及装置 - Google Patents
一种持久层生成方法及装置 Download PDFInfo
- Publication number
- CN101008952A CN101008952A CN 200710002787 CN200710002787A CN101008952A CN 101008952 A CN101008952 A CN 101008952A CN 200710002787 CN200710002787 CN 200710002787 CN 200710002787 A CN200710002787 A CN 200710002787A CN 101008952 A CN101008952 A CN 101008952A
- Authority
- CN
- China
- Prior art keywords
- code
- persistent layer
- database
- data
- parameter
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种持久层生成方法及装置,用于简单便捷的实现数据的持久化处理。所述方法包括:获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数;根据所述获取到的参数生成持久层代码;将所述持久层代码封装成为持久层。所述装置包括:获取单元,生成单元以及封装单元;所述获取单元用于获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数,并将获取到的参数发送至生成单元;所述生成单元用于根据所述获取到的参数生成持久层代码,并将生成的持久层代码发送至封装单元;所述封装单元用于将接收到的持久层代码封装成为持久层。本发明可以有效地简化数据持久化的过程。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种持久层生成方法及装置。
背景技术
持久化技术,也就是把数据保存到可掉电式存储设备中的技术。对于企业级应用而言,持久化通常是将数据保存到关系数据库管理系统(RDBMS,Relational Database Management System)中。
近年来,持久化技术是一个相当活跃的研究领域,一些企业和开源组织提供了许多的持久化方案。
例如,如图1所示,现有技术中一种持久化方案为:在应用层程序中通过结构化查询语言(SQL,Structured Query Language)直接访问数据库。
该方案的持久化的过程如下:
1、应用层对象根据业务逻辑生成SQL语句;
2、应用层对象建立或者获取数据库连接;
3、应用层对象将生成的SQL语句和数据库连接传给数据库读写对象;
4、数据库读写对象通过所述数据库连接与对应的数据库建立连接,之后利用SQL语句对数据库进行操作;
5、数据库读写对象将操作数据库的结果返回给应用层对象;
6、应用层对象删除/释放数据库连接。
但是,上述方案中,应用层对象要根据业务逻辑生成SQL语句,并且最后由数据库读写对象通过SQL语句对数据库进行操作,所以数据库访问与业务逻辑紧密耦合,容易破坏业务逻辑层对象的封装;
请参阅图2,现有技术中另一种持久化方案为使用商用的持久层框架对数据进行持久化处理,该方案真正形成了“层”的抽象,持久层负责数据的存取,与其它层有着明确的逻辑界限和职责分工,同时实现了对象/关系数据库映射(ORM),即将关系数据库中的数据库表映射到了程序中可以访问的实体对象。
但是,商用持久层框架往往是重量级的,也就是说,无论需要持久化的对象有多少,都必须包含完整的持久层框架,而且配置复杂,不容易使用。
发明内容
本发明实施例提供了一种持久层生成方法及装置,能够简单便捷的实现持久化技术。
本发明实施例提供的持久层生成方法,包括:获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数;根据所述获取到的参数生成持久层代码;将所述持久层代码封装成为持久层。
本发明实施例提供的持久层生成装置,包括:获取单元,生成单元以及封装单元;所述获取单元用于获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数,并将获取到的参数发送至生成单元;所述生成单元用于根据所述获取到的参数生成持久层代码,并将生成的持久层代码发送至封装单元;所述封装单元用于将接收到的持久层代码封装成为持久层。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例由于根据实际的数据持久化情况采集持久层构造参数来生成持久层,持久层会根据持久化对象而变化,而不需要包含完整的商业持久层框架,所以本发明持久层是轻量级的,便于实现。
附图说明
图1为现有技术一中持久化过程示意图;
图2为现有技术二中持久化过程示意图;
图3为本发明实施例持久层生成装置的示意图;
图4为本发明实施例的持久层生成方法流程图;
图5为本发明实施例生成的持久层结构示意图;
图6为本发明实施例方法生成的代码结构示意图。
具体实施方式
本发明实施例提供了一种持久层生成方法及装置,用于简单便捷的实现数据的持久化处理。
请参阅图3,本发明实施例提供的持久层生成装置包括:
获取单元301,生成单元302以及封装单元303;
获取单元301用于获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数,并将获取到的参数发送至生成单元302;
生成单元302用于根据所述获取到的参数生成持久层代码,并将生成的持久层代码发送至封装单元303;
封装单元303用于将接收到的持久层代码封装成为持久层。
其中,生成单元302包括:
数据实体类生成单元3021,数据操作类生成单元3022,共享资源池生成单元3023以及融合单元3024;
数据实体类生成单元3021用于将数据库表在对象模型中进行映射,并根据映射结果生成数据实体类代码;
数据操作类生成单元3022用于根据数据库表之间的关联关系配置参数形成数据操作类代码;
共享资源池生成单元3023用于生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码;
融合单元3024用于融合生成的数据库连接池代码,语句缓冲池代码以及实体数据缓存代码形成持久层代码,并将形成的持久层代码发送至封装单元303。
下面对本发明持久层生成方法进行描述,请参阅图4,一并参阅图3,本发明持久层生成方法实施例包括:
401、获取参数;
具体为,获取单元301获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数。
在主流的关系数据库管理系统(RDBMS)中,这些信息都可以在数据库的系统表(或者系统视图)中获得,因此,持久层生成装置中的获取单元301可以直接连接到数据库,以获取这些信息。也可以通过配置文件获取数据库表结构。
一、数据库表结构参数包括:
表名;
表的字段信息:可以包括字段名、数据类型、数据长度、是否允许为空等;
表的主键和索引信息:主键包含的字段,索引的类型,索引包含的字段等,这样在生成的数据检索代码中就能尽量选用合适的索引,以提高效率;
下面具体给出一个表结构,如下表所示:
表1
学生表(Student) | |||||
字段名 | 数据类型 | 数据长度 | NULL | 主键 | 索引 |
学生标识 (Student Id) | 字符型(Char) | 16 | 否 | 是 | 是 |
班级标识(Class Id) | 字符型(Char) | 16 | 是 | 否 | 否 |
姓名(Name) | 字符型(Char) | 16 | 否 | 否 | 是 |
年龄(Age) | 整型(Int) | 4 | 否 | 否 | 否 |
二、数据库表之间的关联关系配置参数,即是将各数据库表映射为实体类,再获取对应的实体类之间的关联关系。
三、代码生成配置参数,用于控制持久层生成装置工作的选项,包括:
源代码的语言类型,例如JAVA语言,C++语言;
持久化目标类型:一般是指数据库的类型,也可以指定为XML文件或者文本文件;
是否支持连接池;
是否支持语句缓冲,缓冲的大小;
是否支持数据缓存,缓存的大小;
需要生成的接口类型定义,如:如果某个应用系统不需要支持批量数据更新,则要在此定义。
402、生成单元302根据所述获取到的参数生成持久层代码;
其中,数据实体类生成单元3021根据数据库表结构参数将数据库表在对象模型中进行映射,形成数据实体类代码,即是将表中的数据按照预置的方式导出为代码;
数据操作类生成单元3022根据数据库表之间的关联关系配置参数形成数据操作类代码;
共享资源池生成单元3023根据代码生成配置参数生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码;
融合单元3024根据所述数据实体类代码,数据操作类代码,生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码生成持久层代码。
403、封装单元303将所述持久层代码封装成为持久层。
本发明实施例最终的持久层结构如图5所示,具体包括:
数据实体类(Data Object)
数据实体类是数据库中的数据库表在对象模型中的映射,一般来说,数据库中的一个数据库表对应一个数据实体类,每一个数据实体对象对于数据库表中的一条记录,对于数据库表中的每一个字段,数据实体类中都有一个数据类型兼容的成员变量与之对应。
数据操作类(Data Access)
对于数据库中的每一个数据库表,还会生成与之对应的数据操作类,数据操作类通常通过执行SQL语句与数据库进行交互,实现对对应数据实体对象的增、删、改、数据检索等功能,根据不同的需要,数据操作类也可以将数据持久化保存到文件系统中,支持将实体对象保存成文本文件、可扩展标记语言(XML)文件或者其它指定格式的文件,数据操作类是进行具体持久化过程的类。
共享资源池(数据库连接池、语句缓冲池、实体数据缓存)
数据库连接池、语句缓冲池、实体数据缓存都是为了提高持久层效率而采用的技术,这些技术在业内已经得到了广泛的应用,因此在此不做详细阐述。
上述实施例说明了利用持久层生成装置生成持久层的过程,使用的是C++语言,可以理解的是,同样可以使用其它的程序开发语言。
为了能够使形成的持久层具有更高的可重用性以及利于移植,在数据的持久化过程中,需要屏蔽一些差异,包括:
一、屏蔽数据库之间的差异:
对于应用开发来说,不同数据库的差异主要体现在三个方面,一是SQL方言,二是数据库应用编程接口(API)的差异,三是数据库对特定功能的支持的差异,可以分别用以下的方法进行屏蔽:
SQL方言:SQL已经成为各数据库开发商共同遵循的标准,但是处于种种原因,几乎每个数据库管理系统都有一些与标准SQL不同的方言。因此,在生成的数据操作类中将严格使用标准的SQL,不使用某个数据库特有的方言,事实上,使用标准SQL已经能够实现所有必须的功能。
数据库API的差异:对于不同的数据库,进行数据库操作的API往往会略有不同,如建立/释放数据库连接,事务提交,回滚等都存在差异,但是,现在有一些开发包,对现存的各种主流数据库API进行重新封装,抽象出统一的API,在生成的数据库操作类中使用这种重新封装过的数据库API,能够屏蔽数据库API的差异。
数据库对特定功能的支持:不同的数据库对某些功能的支持上也存在差异,如部分数据库不能支持语句缓冲,这样就必须在生成数据库访问类的时候根据数据库类型的不同,选择是否使用这些特定的功能。
二、屏蔽程序开发语言之间的差异:
要支持各种主流的程序设计语言对于用传统方法开发的软件来说唯一的办法就是使用不同的程序设计语言对系统进行编码,工作量很大,但是由于本发明了采用了代码自动生成的方法,实现起来则要简单得多。
无论生成那种程序开发语言的持久成源代码,都需要先保持语义的一致性,不同开发语言的差异体现在语法和API上,本发明将不同语言的语法和API的差异定义在语言模板中,用语义+语言模板的方法来生成不同开发语言的源代码。
具体地,下面以C++语言为例,说明持久层生成的过程:
如表1所示的数据库表,将持久层生成装置连接到数据库之后,通过读取系统视图,在数据库中,系统视图即是系统中的数据库表以及数据库表之间的关系图,就可以得到其表结构参数,首先,持久层生成装置生成数据库实体类。
表名为学生表(Student),数据库实体类的类名为DOStudent,相应的源文件名分别为DOStudent.cpp和DOStudent.h。
根据学生表的四个字段,即学生标识,班级标识,姓名和年龄,将相应的生成四个的成员变量,并生成对每个成员进行读写的Get/Set方法。
头文件(DOStudent.h)如下:
Class DOStudent //定义数据库实体类
{
private: //私有成员
char m_Studentid[16+1]; //定义学生标识(字符型)
char m_Classid[16+1]; //定义班级标识(字符型)
char m_Name[16+1]; //定义姓名(字符型)
int m_Age; //定义年龄(整型)
public: //公有成员
DOStudent(); //声明构造函数
~DOStudent(); //声明析构函数
char*GetStudentid(); //定义获取学生标识函数
void SetStudentid(const char*value ); //定义设置学生标识函数
char*GetClassid(); //定义获取班级标识函数
void SetClassid(const char*value); //定义设置班级标识函数
char*GetName(); //定义获取姓名函数
void SetName(const char*value); //定义设置姓名函数
int GetAge(); //定义获取年龄函数
void SetAge(const int value); //定义设置年龄函数
};
在DOStudent.cpp文件中,则一一实现了在DOStudent.h中定义的方法:构造与析构函数:
DOStudent::DOStudent() //定义构造函数
{
memset(m_Studentid,0,sizeof(m_Studentid));
memset(m_Classid,0,sizeof(m_Classid));
memset(m_Name,0,sizeof(m_Name));
m_Age=0;
}
上述构造函数即是对每个成员变量的初始化过程。
DOStudent::~DOStudent()
{
}
Get/Set方法(以学生标识为例,其余的成员变量类似):
char*DOStudent::GetStudentid()
{
return m_Studentid; //返回学生标识的值
}
void DOStudent::SetStudentid(const char*value)
{
strncpy(m_Studentid,value,sizeof(m_Studentid)-1);//用新的学生标识的值覆盖原有学生标识的值
}
这样,就完成了数据实体类生成。
持久层生成装置生成数据库操作类名为DAStudent,相应的源文件名分别为DAStudent.cpp和DAStudent.h。
持久层生成装置为学生表(Student)生成插入数据、修改数据、删除数据、查询数据的函数方法(在实际运用中,还会生成更多的操作接口,本例中仅仅举例说明了最基本的操作接口)。
头文件(DAStudent.h)如下:
class DAStudent
{
private:
CDBConnect*m_Conn; //定义负责执行SQL语句的数据库访问对象指针
public:
DAStudent(CDBConnect*conn=NULL);//初始化数据库访问对象指针
int Insert(DOStudent&doDent); //定义插入数据函数
int Update(DOStudent&doDent);//定义修改数据函数
int Delete(char*cStudentid);//定义删除数据函数
int Select(DOStudent&doDent,char*cStudentid);//定义查询数据函数
};
在DAStudent.cpp文件中,则一一实现了在DAStudent中定义的函数,下面以查询函数为例进行说明,其它函数的实现过程类似:
int DAStudent::Select(DOStudent&doStudent,char*cStudentid)
{
char sql[10240];
int iRowCount=0;
char Studentid[16+1]={0};
strcpy(sql,”select STUDENTID,CLASSID,NAME,AGE fromSTUDENT where STUDENTID=:Studentid”) ;//设置SQL语句
m_conn->SetSQL(sql);
strcpy(Studentid,cStudentid);
m_conn->Bind(“:Studentid”,Studentid);//绑定变量
m_conn->Open(); //执行SQL语句
if(m_conn->Next())//根据查询出来的数据为传入的数据实体对象赋值
{
doStudent.SetStudentid(m_conn->GetString(“STUDENTID”));
doStudent.SetClassid(m_conn->GetString(“CLASSID”));
doStudent.SetName(m_conn->GetString(“NAME”));
doStudent.SetAge(m_conn->GetInt(“AGE”));
iRowCount++;
}
return iRowCount;
}
这样就通过持久层生成装置生成了数据实体对象和数据操作对象的代码,最终生成的代码结构如图6所示。
对上述形成的持久层代码进行封装即得到持久层,可应用于数据持久过程。
以上对本发明实施例所提供的一种持久层生成方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种持久层生成方法,其特征在于,包括:
获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数;
根据所述获取到的参数生成持久层代码;
将所述持久层代码封装成为持久层。
2、根据权利要求1所述的持久层生成方法,其特征在于,所述根据所述获取到的参数生成持久层代码的步骤包括:
根据所述数据库表的结构参数将数据库表在对象模型中进行映射形成数据实体类代码;
根据所述数据库表之间的关联关系配置参数形成数据操作类代码;
根据所述代码生成配置参数生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码;
根据所述数据实体类代码,数据操作类代码,生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码生成持久层代码。
3、根据权利要求1所述的持久层生成方法,其特征在于,在所述根据所述获取到的参数生成持久层代码的步骤之前包括:
对预置的程序开发语言的语义进行统一;
根据所述程序开发语言的语法和应用编程接口定义相应的语言模板。
4、根据权利要求3所述的持久层生成方法,其特征在于,所述根据所述获取到的参数生成持久层代码的步骤包括:
获取当前使用的程序开发语言的类型;
查询所述程序开发语言对应的语言模板;
根据所述经过统一的语义以及所述语言模板生成持久层代码。
5、根据权利要求1所述的持久层生成方法,其特征在于,在获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数的步骤之后包括:
对需要应用数据持久技术的数据库进行一致性处理。
6、根据权利要求5所述的持久层生成方法,其特征在于,所述对需要应用数据持久技术的数据库进行一致性处理的步骤包括:
在不同的数据库中统一使用标准结构化查询语言。
7、根据权利要求5所述的持久层生成方法,其特征在于,所述对需要应用数据持久技术的数据库进行一致性处理的步骤包括:
对数据库应用编程接口进行重新封装;
从所述经过重新封装的应用编程接口中抽象出统一的应用编程接口。
8、根据权利要求5所述的持久层生成方法,其特征在于,所述对数据库进行一致性处理的步骤包括:
对数据库进行使用功能协商。
9、一种持久层生成装置,其特征在于,包括:
获取单元,生成单元以及封装单元;
所述获取单元用于获取数据库表结构参数,数据库表之间的关联关系配置参数以及代码生成配置参数,并将获取到的参数发送至生成单元;
所述生成单元用于根据所述获取到的参数生成持久层代码,并将生成的持久层代码发送至封装单元;
所述封装单元用于将接收到的持久层代码封装成为持久层。
10、根据权利要求9所述的持久层生成装置,其特征在于,所述生成单元包括:
数据实体类生成单元,数据操作类生成单元,共享资源池生成单元以及融合单元;
所述数据实体类生成单元用于将数据库表在对象模型中进行映射,并根据映射结果生成数据实体类代码;
所述数据操作类生成单元用于根据数据库表之间的关联关系配置参数形成数据操作类代码;
所述共享资源池生成单元用于生成数据库连接池代码,语句缓冲池代码以及实体数据缓存代码;
所述融合单元用于融合上述代码形成持久层代码,并将形成的代码发送至封装单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100027875A CN100557609C (zh) | 2007-01-30 | 2007-01-30 | 一种持久层生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100027875A CN100557609C (zh) | 2007-01-30 | 2007-01-30 | 一种持久层生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101008952A true CN101008952A (zh) | 2007-08-01 |
CN100557609C CN100557609C (zh) | 2009-11-04 |
Family
ID=38697385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100027875A Expired - Fee Related CN100557609C (zh) | 2007-01-30 | 2007-01-30 | 一种持久层生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100557609C (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887452A (zh) * | 2010-06-30 | 2010-11-17 | 山东中创软件工程股份有限公司 | 数据字典维护方法和装置 |
CN102346774A (zh) * | 2011-09-26 | 2012-02-08 | 深圳市信游天下网络科技有限公司 | 一种数据库操作方法及装置 |
CN102663103A (zh) * | 2012-04-13 | 2012-09-12 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN101751260B (zh) * | 2009-12-23 | 2013-01-02 | 卡斯柯信号有限公司 | 一种基于动态标签的业务对象持久化处理方法 |
CN103049251A (zh) * | 2011-10-17 | 2013-04-17 | 中国移动通信集团公司 | 一种数据库持久层装置及数据库操作方法 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103440325A (zh) * | 2013-09-02 | 2013-12-11 | 重庆九鼎山科技有限公司 | 高效、多并发、自适用的数据库及其运行方法 |
CN103530123A (zh) * | 2013-10-21 | 2014-01-22 | 济南政和科技有限公司 | 一种代码生成方法及系统 |
CN103810171A (zh) * | 2012-11-06 | 2014-05-21 | 深圳市金蝶中间件有限公司 | 生成限定范围的随机测试数据的方法及系统 |
CN103942280A (zh) * | 2014-04-02 | 2014-07-23 | 云南电网公司 | 一种基于数据结构自动生成代码的方法 |
CN104199907A (zh) * | 2014-08-28 | 2014-12-10 | 广州华多网络科技有限公司 | 插入数据的方法及装置 |
CN104679894A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种erp系统中海量运维数据的采集方法 |
CN104731911A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 一种数据表与实体类的动态映射及转换方法 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105447051A (zh) * | 2014-09-22 | 2016-03-30 | 普天信息技术有限公司 | 一种数据库操作的方法和装置 |
CN105488117A (zh) * | 2015-11-23 | 2016-04-13 | 浪潮集团有限公司 | 一种自定义对象的处理方法及装置 |
CN105589727A (zh) * | 2015-04-22 | 2016-05-18 | 中国银联股份有限公司 | 一种基于cli将应用程序变量绑定到参数标记的方法和装置 |
CN106095600A (zh) * | 2008-10-10 | 2016-11-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
CN106570056A (zh) * | 2016-09-28 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种数据库实现方法及数据库 |
CN107729561A (zh) * | 2017-11-09 | 2018-02-23 | 成都卓凡软件科技有限公司 | 基于数据库表结构反向生成对数据库表操作的方法 |
CN109976803A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种文件的生成方法及装置 |
CN110837363A (zh) * | 2019-11-05 | 2020-02-25 | 北京锐安科技有限公司 | 代码文件的生成方法、装置、设备和介质 |
-
2007
- 2007-01-30 CN CNB2007100027875A patent/CN100557609C/zh not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095600A (zh) * | 2008-10-10 | 2016-11-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
CN101751260B (zh) * | 2009-12-23 | 2013-01-02 | 卡斯柯信号有限公司 | 一种基于动态标签的业务对象持久化处理方法 |
CN101887452A (zh) * | 2010-06-30 | 2010-11-17 | 山东中创软件工程股份有限公司 | 数据字典维护方法和装置 |
CN102346774B (zh) * | 2011-09-26 | 2013-09-18 | 深圳市信游天下网络科技有限公司 | 一种数据库操作方法 |
CN102346774A (zh) * | 2011-09-26 | 2012-02-08 | 深圳市信游天下网络科技有限公司 | 一种数据库操作方法及装置 |
CN103049251A (zh) * | 2011-10-17 | 2013-04-17 | 中国移动通信集团公司 | 一种数据库持久层装置及数据库操作方法 |
CN103049251B (zh) * | 2011-10-17 | 2015-10-07 | 中国移动通信集团公司 | 一种数据库持久层装置及数据库操作方法 |
CN103135976A (zh) * | 2011-11-30 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103135976B (zh) * | 2011-11-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN102663103A (zh) * | 2012-04-13 | 2012-09-12 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN102663103B (zh) * | 2012-04-13 | 2015-03-04 | 北京工业大学 | 可配置的自动化生成数据库和数据访问的方法 |
CN103810171B (zh) * | 2012-11-06 | 2017-02-08 | 深圳市金蝶天燕中间件股份有限公司 | 生成限定范围的随机测试数据的方法及系统 |
CN103810171A (zh) * | 2012-11-06 | 2014-05-21 | 深圳市金蝶中间件有限公司 | 生成限定范围的随机测试数据的方法及系统 |
CN103440325A (zh) * | 2013-09-02 | 2013-12-11 | 重庆九鼎山科技有限公司 | 高效、多并发、自适用的数据库及其运行方法 |
CN103440325B (zh) * | 2013-09-02 | 2017-05-24 | 重庆康仕泰科技有限公司 | 高效、多并发、自适用数据库的运行方法 |
CN103530123A (zh) * | 2013-10-21 | 2014-01-22 | 济南政和科技有限公司 | 一种代码生成方法及系统 |
CN103942280A (zh) * | 2014-04-02 | 2014-07-23 | 云南电网公司 | 一种基于数据结构自动生成代码的方法 |
CN104199907B (zh) * | 2014-08-28 | 2017-08-25 | 广州华多网络科技有限公司 | 插入数据的方法及装置 |
CN104199907A (zh) * | 2014-08-28 | 2014-12-10 | 广州华多网络科技有限公司 | 插入数据的方法及装置 |
CN105447051A (zh) * | 2014-09-22 | 2016-03-30 | 普天信息技术有限公司 | 一种数据库操作的方法和装置 |
CN104679894A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种erp系统中海量运维数据的采集方法 |
CN104731911A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 一种数据表与实体类的动态映射及转换方法 |
CN105589727A (zh) * | 2015-04-22 | 2016-05-18 | 中国银联股份有限公司 | 一种基于cli将应用程序变量绑定到参数标记的方法和装置 |
CN105488117A (zh) * | 2015-11-23 | 2016-04-13 | 浪潮集团有限公司 | 一种自定义对象的处理方法及装置 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105354036B (zh) * | 2015-11-26 | 2019-02-01 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN106570056A (zh) * | 2016-09-28 | 2017-04-19 | 深圳盒子支付信息技术有限公司 | 一种数据库实现方法及数据库 |
CN107729561A (zh) * | 2017-11-09 | 2018-02-23 | 成都卓凡软件科技有限公司 | 基于数据库表结构反向生成对数据库表操作的方法 |
CN109976803A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种文件的生成方法及装置 |
CN109976803B (zh) * | 2017-12-27 | 2022-09-20 | 航天信息股份有限公司 | 一种文件的生成方法及装置 |
CN110837363A (zh) * | 2019-11-05 | 2020-02-25 | 北京锐安科技有限公司 | 代码文件的生成方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100557609C (zh) | 2009-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100557609C (zh) | 一种持久层生成方法及装置 | |
US7152070B1 (en) | System and method for integrating and accessing multiple data sources within a data warehouse architecture | |
CN100468396C (zh) | 用于任意数据模型的映射体系结构 | |
US5878411A (en) | Dependent object class and subclass mapping to relational data store | |
US7493335B2 (en) | Object process graph relational database interface | |
US7519606B2 (en) | Schema mapping specification framework | |
US5295256A (en) | Automatic storage of persistent objects in a relational schema | |
US8516011B2 (en) | Generating data models | |
CN102566990B (zh) | 一种在Java应用中进行数据操作的方法及装置 | |
US9355143B2 (en) | Systems and methods for providing a simplified application programming interface for converting from two-dimensional query languages into multi-dimensional query languages to query multi-dimensional data sources and MDX servers | |
KR20060045622A (ko) | 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈 | |
US20040044687A1 (en) | Apparatus and method using pre-described patterns and reflection to generate a database schema | |
US20070027849A1 (en) | Integrating query-related operators in a programming language | |
US8090735B2 (en) | Statement generation using statement patterns | |
JP2004280823A (ja) | オンライントランザクション処理用オブジェクトモデルからのビジネス分析用ディメンジョンモデル自動生成 | |
US20060294159A1 (en) | Method and process for co-existing versions of standards in an abstract and physical data environment | |
CN106844380A (zh) | 一种数据库操作方法、信息处理方法和相应装置 | |
Piórkowski | Mysql spatial and postgis–implementations of spatial data standards | |
US20060005138A1 (en) | Template driven type and mode conversion | |
CN111125440B (zh) | 一种基于Monad的持久层复合条件查询方法与存储介质 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
CN105550176A (zh) | 一种关系数据库与xml的基本映射方法 | |
CN108845793B (zh) | 一种orm设计方法及装置 | |
You et al. | Relational DB Implementation of STEP based product model | |
CN101702163A (zh) | 基于SQLite数据库的数据转换方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091104 Termination date: 20130130 |