CN105159920A - 一种基于属性标签的数据库访问方法 - Google Patents

一种基于属性标签的数据库访问方法 Download PDF

Info

Publication number
CN105159920A
CN105159920A CN201510451226.8A CN201510451226A CN105159920A CN 105159920 A CN105159920 A CN 105159920A CN 201510451226 A CN201510451226 A CN 201510451226A CN 105159920 A CN105159920 A CN 105159920A
Authority
CN
China
Prior art keywords
class
label
database
ado
sql statement
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.)
Pending
Application number
CN201510451226.8A
Other languages
English (en)
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.)
Casco Signal Ltd
Original Assignee
Casco Signal 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 Casco Signal Ltd filed Critical Casco Signal Ltd
Priority to CN201510451226.8A priority Critical patent/CN105159920A/zh
Publication of CN105159920A publication Critical patent/CN105159920A/zh
Priority to HK16104660.3A priority patent/HK1216928A1/zh
Pending legal-status Critical Current

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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于属性标签的数据库访问方法,包括以下步骤:(1)创建自定义属性标签;(2)构建所有业务类,并分别添加与数据库内容一一对应的自定义属性标签;(3)构建每个业务类的ADO类并进行持久化操作;(4)通过反射机制获取业务类对应的数据库表或视图名称和字段名称;(5)根据获取到的信息构建CRUD操作的SQL语句;(6)根据具体业务类的数据信息构建SQL参数对象,调用ADO执行函数实现对数据库的访问。与现有技术相比,本发明对业务类添加对应的自定义属性标签,实现业务对数据的持久化存储,提高开发效率;同时不需要额外的映射文件或映射关系表来维护映射关系,节省IO和内存资源,提高执行效率。

Description

一种基于属性标签的数据库访问方法
技术领域
本发明涉及一种数据库访问方法,尤其是涉及一种基于属性标签的数据库访问方法。
背景技术
数据库是如今很多管理程序都会用到的数据管理程序,不论是BS还是CS架构应用程序,都可以分为数据处理和数据访问两部分,数据库操作是数据访问的主要部分。而如何高效简便地在应用程序中进行数据库的访问是很多开发人员都在探索的内容,比较常用的两种方式是对象映射的方式和通过反射API获取业务实体类相关信息,然后拼接SQL语句的方式。但两种方式都不够简洁,对象映射方式需要通过xml配置文件来映射代码实体类和数据库表之间的关系,在进行持久化操作时候需要查找对应关系来确定要在数据库中操作的对象。而通过反射API获取业务实体类信息,然后拼接SQL语句的方式需要通过预先配置好的文件来映射对象类和该对象的实际数据访问类,然后才能执行具体的数据库操作。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供的一种基于属性标签的数据库访问方法,旨在通过业务类的属性标签实现与数据库的绑定,从而实现数据持久化的自动处理。
本发明的目的可以通过以下技术方案来实现:
一种基于属性标签的数据库访问方法,其特征在于,该方法包括以下步骤:
(1)创建自定义属性标签,包括自定义类的标签和自定义字段的标签,所述的自定义类的标签包括数据库表或视图名称,所述的自定义字段的标签包括数据库中字段名称和字段类型;
(2)构建所有业务类,并对每个业务类分别添加与数据库内容一一对应的自定义类的标签和自定义字段的标签;
(3)构建每个业务类的ADO类,并进行持久化操作;
(4)通过反射机制获取业务类对应的表或视图名称和字段名称;
(5)根据获取到的表或视图名称和字段名称构建CRUD操作的SQL语句;
(6)根据具体业务类的数据信息构建SQL参数对象,调用ADO执行函数,若有异常则将异常信息返回给***处理并关闭数据库连接,否则返回结果并关闭数据库连接。
所述的标签的字段类型和数据库中具体字段类型一致。
所述的步骤(3)具体包括以下子步骤:
(301)构建ADO类的操作模板SmrAdoTmplate<T>;
(302)通过继承SmrAdoTmplate<T>方式来构建每个业务类的ADO类;
(302)在***中调用业务类对应的ADO类执行持久化操作。
所述的步骤(5)中构建CRUD操作的SQL语句具体方式为:调用SQL语句拼接SqlServerConvertor类构建CRUD操作的SQL语句。
所述的调用SQL语句拼接SqlServerConvertor类构建CRUD操作的SQL语句,若为***操作,其具体拼接方式为:采用insertinto{0}({1})values({2})字符串进行操作,所述的标签的表或视图名称格式化到{0}位置,所述的标签的字段名称以逗号分隔拼接成字符串后格式化到{1}位置,根据具体的数据库类型在字段名称前添加不同前缀,拼接SQL语句参数内容格式化到{2}位置。
与现有技术相比,本发明只需对业务类添加对应的标签内容,即可实现业务对数据的持久化存储,使得开发工作主要集中在业务逻辑的处理,从而提高开发效率;通过类本身的属性标签来映射业务实体类和数据库实体的内容,不需要额外的映射文件或映射关系表来维护映射关系,从而节省IO和内存资源,提高执行效率。
附图说明
图1为本发明数据库访问方法总体结构示意图;
图2为本发明自定义属性标签与数据库的对应关系结构示意图;
图3为本发明数据库访问方法流程图。
1为业务实体,2为数据库,3为数据持续化层,4为自定义属性标签。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1,本方法主要通过自定义属性标签来实现业务实体1和数据库2实体之间的映射,通过数据持久化层3来执行数据库2访问操作。
图2中自定义属性标签4的类名映射到数据库2表或视图名称,类属性映射到字段名称,因此自定义属性标签4包括自定义类的标签和自定义字段的标签,其中自定义类的标签仅包含对应的表或视图名称,自定义字段的标签包括数据库中字段名称和字段类型,字段类型应和数据库中具体字段类型保持一致。
图3为本发明数据库访问方法流程图,以下对图中的各步骤进行详细描述:
步骤301中,创建自定义属性标签,包括自定义类的标签TableAttribute和自定义字段的标签FieldAttribute。TableAttribute仅定义对应的表或视图名称,FieldAttribute定义字段名称外还要定义是否为主键,执行步骤302;
步骤302中,构建所有业务类,并对每个业务类分别添加与数据库内容一一对应的自定义类的标签和自定义字段的标签,执行步骤303;
步骤303中,构建ADO类的操作模板SmrAdoTmplate<T>,执行步骤304;
步骤304中,通过继承ADO类的操作模板SmrAdoTmplate<T>方式来构建所有业务类的ADO类,执行步骤305;
步骤305中,在***中调用业务类对应的ADO类执行持久化操作,执行步骤306;
步骤306中,对于业务类T通过反射机制获取其对应的表名和字段名,执行步骤307;
步骤307中,调用SQL语句拼接SqlServerConvertor类,根据获取到的表名和字段名信息构建CRUD操作的SQL语句,并执行步骤308,其中SQL具体拼接内容以***操作为例:采用insertinto{0}({1})values({2})字符串进行***操作,表名格式化到{0}位置,字段名以逗号分隔拼接成字符串后格式化到{1}位置,根据具体的数据库类型在字段前添加不同前缀,拼接SQL语句参数内容格式化到{2}位置;
步骤308中,根据具体T的数据信息构建SQL参数对象,然后调用ADO执行函数,执行步骤309;
步骤309中,判断ADO执行函数是否执行成功,若成功执行步骤311,若不成功则执行步骤310;
步骤310中,将异常信息返回给***处理,执行步骤311;
步骤311,返回结果并关闭数据库连接
该数据库访问方法已经被应用于卡斯柯信号有限公司iTC产品ZC/LC工具软件中,该软件的主要功能是对于输入的车辆区域控制和线路控制信息进行处理和转换。
ZC/LC工具软件使用C#开发,采用SQL数据库完成数据的存储工作。
从***开发进度看,使用该发明后,编程的复杂度降低了很多,开发效率有比较大的提升;从用户使用情况来看,其交互方式和响应速度也得到了广泛认可。

Claims (5)

1.一种基于属性标签的数据库访问方法,其特征在于,该方法包括以下步骤:
(1)创建自定义属性标签,包括自定义类的标签和自定义字段的标签,所述的自定义类的标签包括数据库表或视图名称,所述的自定义字段的标签包括数据库中字段名称和字段类型;
(2)构建所有业务类,并对每个业务类分别添加与数据库内容一一对应的自定义类的标签和自定义字段的标签;
(3)构建每个业务类的ADO类,并进行持久化操作;
(4)通过反射机制获取业务类对应的表或视图名称和字段名称;
(5)根据获取到的表或视图名称和字段名称构建CRUD操作的SQL语句;
(6)根据具体业务类的数据信息构建SQL参数对象,调用ADO执行函数,若有异常则将异常信息返回给***处理并关闭数据库连接,否则返回结果并关闭数据库连接。
2.根据权利要求1所述的一种基于属性标签的数据库访问方法,其特征在于,所述的标签的字段类型和数据库中具体字段类型一致。
3.根据权利要求2所述的一种基于属性标签的数据库访问方法,其特征在于,所述的步骤(3)具体包括以下子步骤:
(301)构建ADO类的操作模板SmrAdoTmplate<T>;
(302)通过继承SmrAdoTmplate<T>方式来构建每个业务类的ADO类;
(302)在***中调用业务类对应的ADO类执行持久化操作。
4.根据权利要求3所述的一种基于属性标签的数据库访问方法,其特征在于,所述的步骤(5)中构建CRUD操作的SQL语句具体方式为:调用SQL语句拼接SqlServerConvertor类构建CRUD操作的SQL语句。
5.根据权利要求4所述的一种基于属性标签的数据库访问方法,其特征在于,所述的调用SQL语句拼接SqlServerConvertor类构建CRUD操作的SQL语句,若为***操作,其具体拼接方式为:采用insertinto{0}({1})values({2})字符串进行操作,所述的标签的表或视图名称格式化到{0}位置,所述的标签的字段名称以逗号分隔拼接成字符串后格式化到{1}位置,根据具体的数据库类型在字段名称前添加不同前缀,拼接SQL语句参数内容格式化到{2}位置。
CN201510451226.8A 2015-07-28 2015-07-28 一种基于属性标签的数据库访问方法 Pending CN105159920A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510451226.8A CN105159920A (zh) 2015-07-28 2015-07-28 一种基于属性标签的数据库访问方法
HK16104660.3A HK1216928A1 (zh) 2015-07-28 2016-04-22 種基於屬性標籤的數據庫訪問方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510451226.8A CN105159920A (zh) 2015-07-28 2015-07-28 一种基于属性标签的数据库访问方法

Publications (1)

Publication Number Publication Date
CN105159920A true CN105159920A (zh) 2015-12-16

Family

ID=54800777

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510451226.8A Pending CN105159920A (zh) 2015-07-28 2015-07-28 一种基于属性标签的数据库访问方法

Country Status (2)

Country Link
CN (1) CN105159920A (zh)
HK (1) HK1216928A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354605A (zh) * 2016-09-05 2017-01-25 上海爱数信息技术股份有限公司 一种数据库的访问方法、***及具有该***的服务器
CN107193957A (zh) * 2017-05-23 2017-09-22 努比亚技术有限公司 结构化查询语言的生成方法、终端及计算机可读存储介质
CN107992293A (zh) * 2017-12-11 2018-05-04 国云科技股份有限公司 一种企业属性划分***及其实现方法
CN108268512A (zh) * 2016-12-30 2018-07-10 ***通信集团上海有限公司 一种标签查询方法及装置
CN108564304A (zh) * 2018-05-04 2018-09-21 西北工业大学 一种面向飞机装配的操作描述参数化生成方法
CN108628862A (zh) * 2017-03-15 2018-10-09 北京京东尚科信息技术有限公司 数据库寻址方法、装置和***
CN108710504A (zh) * 2017-04-10 2018-10-26 北大方正集团有限公司 数据库操作方法及装置
CN110096892A (zh) * 2019-04-29 2019-08-06 武汉中锐源信息技术开发有限公司 数据库属性访问控制方法及***
CN111737225A (zh) * 2020-05-25 2020-10-02 贵州华泰智远大数据服务有限公司 一种基于分词技术的数据标签数据库建立方法
CN111984666A (zh) * 2019-05-23 2020-11-24 北京数聚鑫云信息技术有限公司 数据库访问方法、装置、计算机可读存储介质和计算机设备
CN112905586A (zh) * 2019-12-03 2021-06-04 阿里巴巴集团控股有限公司 数据处理与访问方法、装置、计算机***及可读存储介质
CN117611183A (zh) * 2023-09-26 2024-02-27 重庆赛力斯新能源汽车设计院有限公司 一种商品售前运转方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法
CN101256650A (zh) * 2008-03-21 2008-09-03 中国科学院软件研究所 一种基于业务实体的企业数据提取方法与***
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN101706821A (zh) * 2009-12-10 2010-05-12 中兴通讯股份有限公司 基于标签的移动互联网页面设计***及方法
CN101751260A (zh) * 2009-12-23 2010-06-23 卡斯柯信号有限公司 一种基于动态标签的业务对象持久化处理方法
CN102054034A (zh) * 2010-12-27 2011-05-11 华中科技大学 企业信息***的业务基础数据持久化实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067814A (zh) * 2007-05-10 2007-11-07 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法
CN101256650A (zh) * 2008-03-21 2008-09-03 中国科学院软件研究所 一种基于业务实体的企业数据提取方法与***
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN101706821A (zh) * 2009-12-10 2010-05-12 中兴通讯股份有限公司 基于标签的移动互联网页面设计***及方法
CN101751260A (zh) * 2009-12-23 2010-06-23 卡斯柯信号有限公司 一种基于动态标签的业务对象持久化处理方法
CN102054034A (zh) * 2010-12-27 2011-05-11 华中科技大学 企业信息***的业务基础数据持久化实现方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354605B (zh) * 2016-09-05 2019-06-21 上海爱数信息技术股份有限公司 一种数据库的访问方法、***及具有该***的服务器
CN106354605A (zh) * 2016-09-05 2017-01-25 上海爱数信息技术股份有限公司 一种数据库的访问方法、***及具有该***的服务器
CN108268512A (zh) * 2016-12-30 2018-07-10 ***通信集团上海有限公司 一种标签查询方法及装置
CN108628862A (zh) * 2017-03-15 2018-10-09 北京京东尚科信息技术有限公司 数据库寻址方法、装置和***
CN108710504A (zh) * 2017-04-10 2018-10-26 北大方正集团有限公司 数据库操作方法及装置
CN107193957A (zh) * 2017-05-23 2017-09-22 努比亚技术有限公司 结构化查询语言的生成方法、终端及计算机可读存储介质
CN107992293A (zh) * 2017-12-11 2018-05-04 国云科技股份有限公司 一种企业属性划分***及其实现方法
CN108564304A (zh) * 2018-05-04 2018-09-21 西北工业大学 一种面向飞机装配的操作描述参数化生成方法
CN110096892A (zh) * 2019-04-29 2019-08-06 武汉中锐源信息技术开发有限公司 数据库属性访问控制方法及***
CN111984666A (zh) * 2019-05-23 2020-11-24 北京数聚鑫云信息技术有限公司 数据库访问方法、装置、计算机可读存储介质和计算机设备
CN111984666B (zh) * 2019-05-23 2024-03-29 北京数聚鑫云信息技术有限公司 数据库访问方法、装置、计算机可读存储介质和计算机设备
CN112905586A (zh) * 2019-12-03 2021-06-04 阿里巴巴集团控股有限公司 数据处理与访问方法、装置、计算机***及可读存储介质
CN111737225A (zh) * 2020-05-25 2020-10-02 贵州华泰智远大数据服务有限公司 一种基于分词技术的数据标签数据库建立方法
CN117611183A (zh) * 2023-09-26 2024-02-27 重庆赛力斯新能源汽车设计院有限公司 一种商品售前运转方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
HK1216928A1 (zh) 2016-12-09

Similar Documents

Publication Publication Date Title
CN105159920A (zh) 一种基于属性标签的数据库访问方法
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
CN106874388B (zh) 一种基于关系型数据库的异构***数据级联操作自动构建方法
US11392393B2 (en) Application runtime configuration using design time artifacts
US8392873B2 (en) Methods and apparatus for implementing model-based software solution development and integrated change management
US20170242667A1 (en) Software development tool using a workflow pattern that describes software applications
CN111241454A (zh) 一种生成网页代码的方法、***和装置
US8924914B2 (en) Application creation tool toolkit
US20150365275A1 (en) Cloud environment configuration for cloud applications
WO2020228063A1 (zh) 一种开发业务功能的方法和装置
US8843836B2 (en) Model driven content development
CN104407863A (zh) 抽象控件模型编程装置和方法
CN111399828B (zh) 一种基于模型驱动的逻辑设备建模方法及终端
US9509560B2 (en) Unified configuration for cloud integration
CN103268226A (zh) 一种测试脚本文件生成方法及装置
US20200394055A1 (en) System and method for providing a configurable user interface using a self-describing data system
CN104699748A (zh) 一种展示不固定列报表的方法及其***
CN113050946A (zh) 生成网站应用***的方法、装置、电子设备及存储介质
CN109710220A (zh) 关系型数据库查询方法、装置、设备及存储介质
CN111666100B (zh) 软件框架生成方法、装置、电子设备及存储介质
CN109960709B (zh) 一种数据库驱动的处理方法、装置、设备及存储介质
CN111581183A (zh) 一种基于数据模型进行数据迁移方法及装置
CN105824647A (zh) 一种表单页面生成方法和装置
CN114647416A (zh) 基于注解的业务流实现方法及装置、存储介质、电子设备
CN112604273B (zh) 数据驱动的游戏***功能加载方法、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1216928

Country of ref document: HK

RJ01 Rejection of invention patent application after publication

Application publication date: 20151216

RJ01 Rejection of invention patent application after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1216928

Country of ref document: HK