CN111241065B - 一种支持国产数据库的数据库适配开发与操作方法 - Google Patents
一种支持国产数据库的数据库适配开发与操作方法 Download PDFInfo
- Publication number
- CN111241065B CN111241065B CN202010029857.1A CN202010029857A CN111241065B CN 111241065 B CN111241065 B CN 111241065B CN 202010029857 A CN202010029857 A CN 202010029857A CN 111241065 B CN111241065 B CN 111241065B
- Authority
- CN
- China
- Prior art keywords
- database
- annotation
- field
- relation
- index
- 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.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000006978 adaptation Effects 0.000 title claims abstract description 10
- 238000012217 deletion Methods 0.000 claims abstract description 5
- 230000037430 deletion Effects 0.000 claims abstract description 5
- 238000012795 verification Methods 0.000 claims abstract description 4
- 238000007792 addition Methods 0.000 claims abstract description 3
- 238000013461 design Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 238000013508 migration Methods 0.000 abstract 1
- 230000005012 migration Effects 0.000 abstract 1
- 238000013507 mapping Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持国产数据库的数据库适配开发与操作方法,属于数据库开发技术领域,提供一个电子政务行业通用的抽象对象用于给正常业务对象来继承,规范业务对象的通用部分;提供一种用注解的方式来配置数据库与对象的关系,可以通过注解分析对象属性与数据库字段的对应关系,生成建表、触发器、序列、建索引语句及一系列通用增删改查语句,从而减少配置文件,减少开发人员对不同数据库的兼容性工作。本发明通过强行要求使用PreparedStatement与SQL语句监测、接口的方式,取得了支持国际主流数据库以及国产主流数据库、保证SQL安全、适用于政务行业常见的数据移植中搬数据的操作。
Description
技术领域
本发明涉及一种数据库适配开发与操作装置,特别是涉及一种支持国产数据库的安全性多兼容轻量级数据库适配开发与操作方法,属于数据库开发技术领域。
背景技术
随着电子政务的飞速发展,对承接相应业务公司的开发效率要求越来越高,并且由于国家倡导政府采购需要有一定的国产化比率,在电子政务项目中已经有很大一部分使用了国产操作系统、国产中间件、国产数据等产品。
传统政务产品开发方式一般会使用通用数据库与对象关系操作装置,如:HIBERNATE、MYBATIS来兼容三大主流数据库:MSSQL、ORACLE、MYSQL。但这些框架都有些缺点,比如HIBERNATE很重,并且学习成本高,前期效率低;MYBATIS轻量但配置较多;此外它们都不支持国产数据库,导致开发人员需要通过增加更多的判断来决定使用哪种SQL或者单独做国产数据库的产品版本增加了开发难度,影响开发效率,提升了维护成本等。
发明内容
本发明的主要目的是解决现有技术中数据库的产品版本开发难度大、开发效率低、维护成本高等问题,而提供一种支持国产数据库的数据库适配开发与操作方法。
本发明的目的可以通过采用如下技术方案达到:
一种支持国产数据库的数据库适配开发与操作方法,包括:
提供一个电子政务行业通用的抽象对象用于给正常业务对象来继承,规范业务对象的通用部分;
提供一种用注解的方式来配置数据库与对象的关系,可以通过注解分析对象属性与数据库字段的对应关系,生成建表、触发器、序列、建索引语句及一系列通用增删改查语句;
提供一种统一的数据库与对象的操作模型,可以平滑的将对象存储到数据库以及从数据库将数据取出成对象,并且自动负责分页问题。
进一步的,提供一个电子政务行业通用的抽象对象用于给正常业务对象来继承,规范业务对象的通用部分,是通过结合内容管理、互动、视频库、图片库、信息资源库系统抽象出一批所有系统出现概率最大的并且与业务无关的对象属性,组成一个抽象对象。
进一步的,提供一种用注解的方式来配置数据库与对象的关系,可以通过注解分析对象属性与数据库字段的对应关系,生成建表、触发器、序列、建索引语句及一系列通用增删改查语句,包括:注解设计,注解包括表注解、字段注解以及索引注解,表注解可以设置对象对应的数据库表名称;字段注解可以设置字段类型、字段名称、默认值等;索引注解设置对数据库中的哪些字段做索引。
进一步的,字段类型支持DATE,DATETIME,INT,LONG,BIGINT,NUMERIC,DOUBLE,FLOAT,VARCHAR,CHAR,TEXT,BLOB,JSON,这些类型将会被映射成对应数据库的类型,这里做统一配置并不需要分别配置数据库类型与对象类型,比如TEXT会自动映射到ORACLE的CLOB,其中JSON类型支持自动将对象进行JSON化的编码与解码。
进一步的,根据注解生成各种数据库的语句,包括:
INSERT,UPDATE,DELETE,SELECT,SELECT_FROM_ID,DELETE_FROM_IDS,TABLE,SEQ,TRIGGER,ENABLE_SEQ,REMOVE_SEQ,DISABLE_SEQ,MAXID,INDEX,CHECK,ALTER。
进一步的,提供一种统一的数据库与对象的操作模型,可以平滑的将对象存储到数据库以及从数据库将数据取出成对象,并且自动负责分页问题,包括:
抽象出一个含有一批通用数据库与对象关系操作方法的对象,此对象中使用本发明第二点中生成的SQL来执行数据库操作;
业务数据操作对象继承此对象这样可以直接调用通用数据库与对象关系操作方法。
本发明的有益技术效果:
本发明提供的一种支持国产数据库的数据库适配开发与操作方法,通过强行要求使用PreparedStatement与SQL语句监测、接口的方式、注解的方式、自动按照数据库的类型生成建表、建索引语句以及自动按照数据库类型选择适合SQL语句类执行常规增删改查操作等,可以达到数据库的产品版本开发难度小、支持国产数据库、安全性高、多兼容、开发效率高、维护成本低等效果。
附图说明
图1为本发明注解解析数据库与对象关系的示意图;
图2为本发明结合数据库与对象关系使用业务操作对象进行操作的示意图。
具体实施方式
为使本领域技术人员更加清楚和明确本发明的技术方案,下面对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1:见图1,本实例实施步骤如下:
(1)、通过扫描包的方式扫描所有继承了抽象对象的业务对象;
(2)、解析业务对象中的注解;
a、@table注解对象与表的关系;
b、@column注解对象字段与表字段的关系;
c、@index注解需要建立索引的字段;
(3)、将注解标识的信息转换成关系映射交由对象管理器;
(4)、对象管理器对每一个对象进行多数据库适配;
a、按照数据库类型通过映射关系生成建表语句;
b、生成建索引语句;
c、生成触发器序列语句;
d、生成通用操作语句;
(5)、将生成的语句与关系映射缓存,以便复用。
实施例2:见图2,本实例实施步骤如下:
(1)、通过扫描所有业务操作对象;
(2)、对于继承了通用操作对象的业务操作对象进行反射,获取所绑定的对象;
(3)、通过对象与数据库映射缓存验证是否以及存在映射,如果没有映射此业务操作对象的处理就此结束;
(4)、对于有关系映射,通过缓存中关系映射生成好的语句做建表、建索引、建触发器与序列;
(5)、为业务对象提供一系列的通用操作,通用操作所需的执行语句来源于缓存中关系映射生成好的语句;
(6)、由于查询语句有着丰富的写法,本发明会检查SQL是否有危险;
a、检查是否是select语句,防止执行修改操作;
b、检查是否有系统函数方法,防止执行系统命令;
c、检查是否有拼写SQL的嫌疑,防止SQL注入;
d、检查是否有WHERE条件防止整表查询;
e、检查是否有*字段,防止全字段查询;
(7)、对于分页操作本发明会通过适配器的方式提供不同的分页语句,但对于使用者来说只需要设置页码与每页条数即可完成分页查询;
(8)、将数据库的查询结果通过缓存中关系映射转换成对象。
在实施例1和2中,结合图1及图2所示,通过强行要求使用PreparedStatement与SQL语句监测、接口的方式、注解的方式、自动按照数据库的类型生成建表、建索引语句以及自动按照数据库类型选择适合SQL语句类执行常规增删改查操作等,可以达到如下效果:支持国际主流数据库以及国产主流数据库、保证SQL安全、扩展与其他数据库的兼容以实现更多的国产数据库接入、适用于政务行业常见的数据移植中搬数据的操作、可以方便快捷的设置数据库与对象的关系,杜绝了零散的配置文件、开发人员不需要关注兼容性,增加开发效率及安全性,减少开发人员负担及难度,支持国产数据库及多兼容等。
以上所述,仅为本发明进一步的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其构思加以等同替换或改变,都属于本发明的保护范围。
Claims (3)
1.一种支持国产数据库的数据库适配开发与操作方法,其特征在于,包括:
提供一个电子政务行业通用的抽象对象用于给正常业务对象来继承,规范业务对象的通用部分;通过结合内容管理、互动、视频库、图片库、信息资源库系统抽象出一批所有系统出现概率最大的并且与业务无关的对象属性,组成一个抽象对象;
提供一种用注解的方式来配置数据库与对象的关系,通过注解分析对象属性与数据库字段的对应关系,生成建表、触发器、序列、建索引语句及一系列通用增删改查语句,包括:注解设计,注解包括表注解、字段注解以及索引注解,表注解设置对象对应的数据库表名称;字段注解设置字段类型、字段名称、默认值等;索引注解设置对数据库中的哪些字段做索引;
提供一种统一的数据库与对象的操作模型,平滑的将对象存储到数据库以及从数据库将数据取出成对象,并且自动负责分页问题,包括:抽象出一个含有一批通用数据库与对象关系操作方法的对象,此对象中使用生成的SQL来执行数据库操作;业务数据操作对象继承此对象,直接调用通用数据库与对象关系操作方法。
2.如权利要求1所述的支持国产数据库的数据库适配开发与操作方法,其特征在于,字段类型支持DATE,DATETIME,INT,LONG,BIGINT,NUMERIC,DOUBLE,FLOAT,VARCHAR,CHAR,TEXT,BLOB,JSON,这些类型将会被映射成对应数据库的类型,这里做统一配置并不需要分别配置数据库类型与对象类型,TEXT自动映射到ORACLE的CLOB,JSON类型支持将对象进行JSON化的编码与解码。
3.如权利要求2所述的支持国产数据库的数据库适配开发与操作方法,其特征在于,根据注解生成各种数据库的语句,包括:
INSERT,UPDATE,DELETE,SELECT,SELECT_FROM_ID,DELETE_FROM_IDS,TABLE,SEQ,TRIGGER,ENABLE_SEQ,REMOVE_SEQ,DISABLE_SEQ,MAX ID,INDEX,CHECK,ALTER。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029857.1A CN111241065B (zh) | 2020-01-13 | 2020-01-13 | 一种支持国产数据库的数据库适配开发与操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010029857.1A CN111241065B (zh) | 2020-01-13 | 2020-01-13 | 一种支持国产数据库的数据库适配开发与操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241065A CN111241065A (zh) | 2020-06-05 |
CN111241065B true CN111241065B (zh) | 2024-01-30 |
Family
ID=70863944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010029857.1A Active CN111241065B (zh) | 2020-01-13 | 2020-01-13 | 一种支持国产数据库的数据库适配开发与操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241065B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782195B (zh) * | 2020-06-30 | 2024-05-03 | 广州云徙科技有限公司 | 一种基于在请求参数上添加注解拼接成sql的查询方法 |
CN112905624B (zh) * | 2021-02-26 | 2023-01-20 | 浪潮通用软件有限公司 | 一种低代码开发平台的数据库扩展方法及设备 |
CN113505126A (zh) * | 2021-06-18 | 2021-10-15 | 山东师范大学 | 基于国产数据库的信息管理安全性可视化方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585945A (zh) * | 2001-09-28 | 2005-02-23 | 甲骨文国际公司 | 用于将xml模式映射到对象关系数据库系统的机制 |
CN102426582A (zh) * | 2011-09-29 | 2012-04-25 | 用友软件股份有限公司 | 数据操作管理装置和数据操作管理方法 |
CN110019335A (zh) * | 2017-10-17 | 2019-07-16 | 航天信息股份有限公司 | 一种基于注解对sql查询语句进行动态扩展的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100293524A1 (en) * | 2009-05-12 | 2010-11-18 | International Business Machines, Corporation | Development environment for managing database aware software projects |
-
2020
- 2020-01-13 CN CN202010029857.1A patent/CN111241065B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585945A (zh) * | 2001-09-28 | 2005-02-23 | 甲骨文国际公司 | 用于将xml模式映射到对象关系数据库系统的机制 |
CN102426582A (zh) * | 2011-09-29 | 2012-04-25 | 用友软件股份有限公司 | 数据操作管理装置和数据操作管理方法 |
CN110019335A (zh) * | 2017-10-17 | 2019-07-16 | 航天信息股份有限公司 | 一种基于注解对sql查询语句进行动态扩展的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111241065A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8145673B2 (en) | Easily queriable software repositories | |
CN111241065B (zh) | 一种支持国产数据库的数据库适配开发与操作方法 | |
US7047253B1 (en) | Mechanisms for storing content and properties of hierarchically organized resources | |
US10545981B2 (en) | Virtual repository management | |
EP3751426A1 (en) | System and method for migration of a legacy datastore | |
US7403956B2 (en) | Relational schema format | |
US9043365B2 (en) | Peer to peer (P2P) federated concept queries | |
US7366708B2 (en) | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system | |
US7487174B2 (en) | Method for storing text annotations with associated type information in a structured data store | |
US6877000B2 (en) | Tool for converting SQL queries into portable ODBC | |
US20100287208A1 (en) | Object-Relational Based Data Access for Nested Relational and Hierarchical Databases | |
US8478760B2 (en) | Techniques of efficient query over text, image, audio, video and other domain specific data in XML using XML table index with integration of text index and other domain specific indexes | |
US10997131B1 (en) | Using a member attribute to perform a database operation on a computing device | |
US7590654B2 (en) | Type definition language for defining content-index from a rich structured WinFS data type | |
KR20060048418A (ko) | 사용자 정의 형식의 지정 멤버의 지연 인출을 위한시스템과 방법 | |
US9390111B2 (en) | Database insert with deferred materialization | |
CN113032393A (zh) | 一种绑定关联对象的方法和装置 | |
US6360218B1 (en) | Compact record format for low-overhead databases | |
US20100088685A1 (en) | System and method for mapping a domain modeling language to a relational store | |
US7103872B2 (en) | System and method for collecting and transferring sets of related data from a mainframe to a workstation | |
US7054862B2 (en) | Method and system for long-term update and edit control in a database system | |
US8316013B2 (en) | Programmatic retrieval of tabular data within a cell of a query result | |
US7185004B1 (en) | System and method for reverse routing materialized query tables in a database | |
US8176035B2 (en) | Detecting and tracking monotonicity for accelerating range and inequality queries | |
US20080040369A1 (en) | Using XML for flexible replication of complex types |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |