CN105159920A - 一种基于属性标签的数据库访问方法 - Google Patents
一种基于属性标签的数据库访问方法 Download PDFInfo
- 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
Links
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query 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}位置。
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)
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)
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 | 华中科技大学 | 企业信息***的业务基础数据持久化实现方法 |
-
2015
- 2015-07-28 CN CN201510451226.8A patent/CN105159920A/zh active Pending
-
2016
- 2016-04-22 HK HK16104660.3A patent/HK1216928A1/zh unknown
Patent Citations (6)
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)
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 |