CN111241065B - 一种支持国产数据库的数据库适配开发与操作方法 - Google Patents

一种支持国产数据库的数据库适配开发与操作方法 Download PDF

Info

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
Application number
CN202010029857.1A
Other languages
English (en)
Other versions
CN111241065A (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.)
Dahan Software Co ltd
Original Assignee
Dahan Software 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 Dahan Software Co ltd filed Critical Dahan Software Co ltd
Priority to CN202010029857.1A priority Critical patent/CN111241065B/zh
Publication of CN111241065A publication Critical patent/CN111241065A/zh
Application granted granted Critical
Publication of CN111241065B publication Critical patent/CN111241065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query 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。
CN202010029857.1A 2020-01-13 2020-01-13 一种支持国产数据库的数据库适配开发与操作方法 Active CN111241065B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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