CN107180110A - 一种基于DataTable的高效数据库接口的实现方法 - Google Patents
一种基于DataTable的高效数据库接口的实现方法 Download PDFInfo
- Publication number
- CN107180110A CN107180110A CN201710442683.XA CN201710442683A CN107180110A CN 107180110 A CN107180110 A CN 107180110A CN 201710442683 A CN201710442683 A CN 201710442683A CN 107180110 A CN107180110 A CN 107180110A
- Authority
- CN
- China
- Prior art keywords
- datatable
- service end
- database
- data
- interface based
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于DataTable的高效数据库接口的实现方法,其特征在于,包括:在服务端的内存中创建DataTable对象;客户端发送请求到服务端,服务端处理数据,从DataTable的表中获取用户请求需要的配置数据;服务端使用DataTable对象中封装的方法创建与数据库的连接,调用DataTable对象中封装好的方法,将SQL语句发送给数据库;数据库执行SQL,向服务端返回数据;服务端整理数据后响应客户请求。本发明可以更好的实现对复杂的业务的支持,对于数据库的操作更加简单、直接、方便,具有更好的易用性、可扩展性和灵活性;在使用过程中,不需要再配置文件中修改信息,提高了开发人员的工作效率,降低了软件开发的难度和后期维护的成本。
Description
技术领域
本发明涉及一种数据库接口的实现方法,具体涉及一种基于数据表(DataTable)的高效数据库接口的实现方法,属于网络应用技术领域。
背景技术
随着互联网应用的丰富和发展,对数据库操作的手段和技术也越来越丰富,配置文件是现在主流数据库操作技术中避免不了的一个存在,在一个大的项目中,配置文件会有很多,常见的配置文件有:
XML文件:对数据库的一些基本配置,如数据库连接路径,数据库用户名,密码等。一般命名为dbconfig.xml。
properties文件:对系统一些常量参数的配置,如最大连接数,连接失效时间等。一般命名为application.properties。
主流技术中对于映射对象的配置很复杂,需要有大量的xml文件来进行配置,以现有使用率较高的MyBatis技术对数据库操作的技术架构为例,MyBatis的每一个数据访问对象(DAO)接口都需要一个配置文件,对于开发者而言,大量的配置文件为项目的维护和管理造成了很大的困难和成本,降低了开发效率。
另外,方法是否可以重载是评价一个技术是否具有多重可能性的重要指标,现有的一些技术并不能支持方法重载,同时具备灵活性和可拓展性的数据库操作技术并不多见。
因此,研制一种基于DataTable的高效数据库接口的实现方法,开发人员可以以近乎零配置文件的方式操作数据库,还可以通过方法重载来实现代码的复用是非常必要的,并且该方法也有重要的应用前景。
发明内容
本发明针对上述现有技术存在的问题做出改进,即本发明的目的在于公开一种基于DataTable的高效数据库接口的实现方法,开发人员可以以近乎零配置文件的方式操作数据库,还可以通过方法重载来实现代码的复用。
为了实现上述目标,本发明所采用的技术方案是:
一种基于DataTable的高效数据库接口的实现方法,其特征在于,包括以下步骤:
(1)、在服务端的内存中创建DataTable对象;
(2)、客户端发送请求到服务端,服务端处理数据,从DataTable的表中获取用户请求需要的配置数据;
(3)、服务端使用DataTable对象中封装的方法创建与数据库的连接,调用DataTable对象中封装好的方法,将SQL语句发送给数据库;
(4)、数据库执行SQL,向服务端返回数据;
(5)、服务端整理数据后响应客户请求。
前述的基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable对象的创建方法包括以下至少一种:
通过DataTable构造函数创建;
使用DataAdapter对象的Fill方法或FillSchema方法在DataSet中创建;
使用DataSet的ReadXML、ReadXMLSchema或InferXMLSchema方法根据预定义的XML文件创建。
前述的基于DataTable的高效数据库接口的实现方法,其特征在于,所述用户请求需要的配置数据包括以下至少一项:数据库连接路径、数据库用户名、数据库密码、最大连接数、链接失效时间。
前述的基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable表中的列、关系和约束区分英文字母大小写。
前述的基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable对象使用Redis管理和缓存数据库返回的数据。
前述的基于DataTable的高效数据库接口的实现方法,其特征在于,所述客户端请求中的SQL语句触发Redis缓存系统中数据的更新。
与现有技术相比,本发明的有益之处在于:
(1)、本发明不局限于已有的流行技术,可以更好的实现对复杂的业务的支持,对于数据库的操作更加简单、直接、方便,具有更好的易用性、可扩展性和灵活性;
(2)、在使用过程中,不需要再配置文件中修改信息,只要在代码的特定位置上进行修改,就可以实现修改的操作,提高了开发人员的工作效率,降低了软件开发的难度和后期维护的成本。
附图说明
图1是现有技术MyBatis对数据库操作的技术架构;
图2是本发明的基于DataTable的高效数据库接口的实现方法的一个具体实施例的DataTable的结构框图;
图3是图2中基于DataTable的高效数据库接口的实现方法一个具体实施例的数据交互流程图;
图4是图2中基于DataTable的高效数据库接口的实现方法一个具体实施例的网络应用流程图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
本发明的基于DataTable的高效数据库接口的实现方法,包括以下步骤:
(1)、在服务端的内存中创建DataTable对象;
(2)、客户端发送请求到服务端,服务端处理数据,从DataTable的表中获取用户请求需要的配置数据;
(3)、服务端使用DataTable对象中封装的方法创建与数据库的连接,调用DataTable对象中封装好的方法,将SQL语句发送给数据库;
(4)、数据库执行SQL,向服务端返回数据;
(5)、服务端整理数据后响应客户请求。
参照图2,是本发明的基于DataTable的高效数据库接口的实现方法的一个具体实施例的DataTable的结构框图,对比图1中现有技术MyBatis对数据库操作的技术架构,现有技术会使用大量的配置文件,而本发明使用一个内存内的关系数据表,可以独立创建和使用,也可以由其他.NETFramework对象使用,最常见的情况是作为DataSet的成员使用;本发明还封装了一系列在工作中常用的方法,同时将获取query对象封装成一个方法,以便处理更加复杂的业务,因此,本发明相对于流行的技术具有很大的优势。
作为一种优选的方案,DataTable对象的创建方法包括以下至少一种:
通过DataTable构造函数创建;
使用DataAdapter对象的Fill方法或FillSchema方法在DataSet中创建;
使用数据集(DataSet)的ReadXML、ReadXMLSchema或InferXMLSchema方法根据预定义的XML文件创建。
初次创建DataTable时,DataTable表是没有结构的,要定义表的架构,必须创建数据列(DataColumn)对象并将其添加到表的列集合(ColumnsCollection)中。表的架构(即结构)由列(Columns)和约束(Constraint)表示,需要使用数据列(DataColumn)对象以及ForeignKeyConstraint和UniqueConstraint对象定义DataTable的架构,表中的列可以映射到数据源中的列、包含从表达式计算所得的值、自动递增它们的值或包含主键值;也可以为表定义主键列,并且可以创建Constraint对象并将其添加到表的约束集合(ConstraintsCollection)中;在为DataTable定义了结构之后,可通过将数据行(DataRow)对象添加到表的行集合(RowsCollection)中来将数据行添加到表中。
创建DataTable时,不需要为TableName属性提供值,可以在其其它时间指定该属性,或者将其保留为空;但是,在将一个没有TableName值的表添加到DataSet中时,该表会得到一个从“Table”(表示Table0)开始递增的默认名称Tablen。
将一个DataTable作为成员添加到一个DataSet的Tables集合中后,不能再将其添加到任何其他DataSet的表集合中。
作为一种优选的方案,用户请求需要的配置数据包括以下至少一项:数据库连接路径、数据库用户名、数据库密码、最大连接数、链接失效时间。
作为一种优选的方案,DataTable表中的列、关系和约束区分英文字母大小写。
按名称引用DataTable表中的列、关系和约束是区分大小写的,一个表中可以存在两个或两个以上名称相同(但大小写不同)的列、关系或约束。例如,DataTable表中可以同时有Col1和col1,在这种情况下,按名称引用某一列就必须完全符合该列名的大小写,否则会引发异常;例如,如果表myTable包含列Col1和列col1,就要以myTable.Columns["Col1"]的形式来按名称引用Col1,而以myTable.Columns["col1"]的形式按名称引用col1;如果以myTable.Columns["COL1"]的形式来引用其中某列就会产生异常。
如果某个特定名称只存在一个列、关系或约束,则不应用区分大小写规则。也就是说,如果表中没有其他的列、关系或约束对象与该特定列、关系或约束对象的名称匹配,您就可以使用任意的大小写来按名称引用该对象,并且不会引发异常。例如,如果表中只有Col1,您就可以使用my.Columns["COL1"]来引用。
作为一种优选的方案,DataTable对象使用Redis管理和缓存数据库返回的数据。
作为一种更加优选的方案,客户端请求中的SQL语句触发Redis缓存系统中数据的更新。
使用方法:
参照图3,是本发明的基于DataTable的高效数据库接口的实现方法一个具体实施例的数据交互流程图,其流程如下:用户输入用户名、密码,将请求发送到服务端;服务端进行数据处理,使用DataTable建立与数据库的连接,服务端调用SQL命令;数据库执行SQL;返回表单,存入Redis缓存中;服务端处理数据,将数据响应给客户端。登录的信息存入Redis中,避免重复连接数据库。
参照图4,是本发明的基于DataTable的高效数据库接口的实现方法一个具体实施例的网络应用流程图,客户端(网络应用)发送请求到服务端,服务端先处理数据,然后从DataTable获取配置数据,创建连接,调用封装好的方法,将SQL命令发送给数据库,数据库执行SQL,由于使用的是DataTable技术,数据库返回的数据会是以一个表单的形式返回,将这个表单里的数据放入到Redis中,再返回给服务端,服务端进行业务处理后将整理好的数据响应到客户端。
需要说明的是,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于DataTable的高效数据库接口的实现方法,其特征在于,包括以下步骤:
(1)、在服务端的内存中创建DataTable对象;
(2)、客户端发送请求到服务端,服务端处理数据,从DataTable的表中获取用户请求需要的配置数据;
(3)、服务端使用DataTable对象中封装的方法创建与数据库的连接,调用DataTable对象中封装好的方法,将SQL语句发送给数据库;
(4)、数据库执行SQL,向服务端返回数据;
(5)、服务端整理数据后响应客户请求。
2.根据权利要求1所述的一种基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable对象的创建方法包括以下至少一种:
通过DataTable构造函数创建;
使用DataAdapter对象的Fill方法或FillSchema方法在DataSet中创建;
使用DataSet的ReadXML、ReadXMLSchema或InferXMLSchema方法根据预定义的XML文件创建。
3.根据权利要求1所述的一种基于DataTable的高效数据库接口的实现方法,其特征在于,所述用户请求需要的配置数据包括以下至少一项:数据库连接路径、数据库用户名、数据库密码、最大连接数、链接失效时间。
4.根据权利要求1所述的一种基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable表中的列、关系和约束区分英文字母大小写。
5.根据权利要求1所述的一种基于DataTable的高效数据库接口的实现方法,其特征在于,所述DataTable对象使用Redis管理和缓存数据库返回的数据。
6.根据权利要求5所述的一种基于DataTable的高效数据库接口的实现方法,其特征在于,所述客户端请求中的SQL语句触发Redis缓存系统中数据的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710442683.XA CN107180110A (zh) | 2017-06-13 | 2017-06-13 | 一种基于DataTable的高效数据库接口的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710442683.XA CN107180110A (zh) | 2017-06-13 | 2017-06-13 | 一种基于DataTable的高效数据库接口的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107180110A true CN107180110A (zh) | 2017-09-19 |
Family
ID=59836155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710442683.XA Pending CN107180110A (zh) | 2017-06-13 | 2017-06-13 | 一种基于DataTable的高效数据库接口的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107180110A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086034A (zh) * | 2018-07-13 | 2018-12-25 | 山东恒云信息科技有限公司 | 利用AOP与Spring依赖注入实现应用数据自动备份的方法 |
CN111966756A (zh) * | 2020-08-21 | 2020-11-20 | 西安寰宇卫星测控与数据应用有限公司 | 表格数据自动同步方法、装置、计算机设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652078A (zh) * | 2004-02-05 | 2005-08-10 | 华为技术有限公司 | 利用基于数据库的应用程序接口系统实现远程调用的方法 |
CN102682043A (zh) * | 2011-04-14 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式数据库连接方法 |
CN103678634A (zh) * | 2013-12-19 | 2014-03-26 | 北京锐安科技有限公司 | 一种提高J-Hi开源开发平台中数据查询速度的方法 |
CN106294565A (zh) * | 2016-07-27 | 2017-01-04 | 中国农业银行股份有限公司 | 一种数据库访问方法及系统 |
-
2017
- 2017-06-13 CN CN201710442683.XA patent/CN107180110A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1652078A (zh) * | 2004-02-05 | 2005-08-10 | 华为技术有限公司 | 利用基于数据库的应用程序接口系统实现远程调用的方法 |
CN102682043A (zh) * | 2011-04-14 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式数据库连接方法 |
CN103678634A (zh) * | 2013-12-19 | 2014-03-26 | 北京锐安科技有限公司 | 一种提高J-Hi开源开发平台中数据查询速度的方法 |
CN106294565A (zh) * | 2016-07-27 | 2017-01-04 | 中国农业银行股份有限公司 | 一种数据库访问方法及系统 |
Non-Patent Citations (1)
Title |
---|
MATHILDA91: ""使用数据库表替代文件配置文件"", 《CSDN HTTPS://BLOG.CSDN.NET/WEIXIN_33767813/ARTICLE/DETAILS/90624214》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086034A (zh) * | 2018-07-13 | 2018-12-25 | 山东恒云信息科技有限公司 | 利用AOP与Spring依赖注入实现应用数据自动备份的方法 |
CN109086034B (zh) * | 2018-07-13 | 2021-07-02 | 山东恒云信息科技有限公司 | 利用AOP与Spring依赖注入实现应用数据自动备份的方法 |
CN111966756A (zh) * | 2020-08-21 | 2020-11-20 | 西安寰宇卫星测控与数据应用有限公司 | 表格数据自动同步方法、装置、计算机设备、存储介质 |
CN111966756B (zh) * | 2020-08-21 | 2024-03-12 | 西安寰宇卫星测控与数据应用有限公司 | 表格数据自动同步方法、装置、计算机设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210103587A1 (en) | Data sharing in database systems | |
US6460041B2 (en) | Browser-based database-access engine apparatus and method | |
US7761443B2 (en) | Implementing access control for queries to a content management system | |
US7082435B1 (en) | Method and mechanism for implementing and accessing virtual database table structures | |
US20110313981A1 (en) | Data Privacy, Redaction and Integrity for Relational Databases | |
WO2019243785A1 (en) | Compilable data model | |
US20110264704A1 (en) | Methods and Systems for Deleting Large Amounts of Data From a Multitenant Database | |
US20200379994A1 (en) | Sharing Materialized Views In Multiple Tenant Database Systems | |
US20130066890A1 (en) | Method and system for specifying, preparing and using parameterized database queries | |
JP2013137763A (ja) | 生存ルールによるソースレコードをマージするためのシステムおよび方法 | |
CN104050220A (zh) | 动态的基于策略的来自外部数据仓库的权利的方法和装置 | |
TW201205320A (en) | Optimizing data cache when applying user-based security | |
US20060225026A1 (en) | User-defined type consistency checker | |
CN101388797A (zh) | 一种在网管系统中实现权限控制的方法和一种网管系统 | |
CA2747783C (en) | Extensibility for web based diagram visualization | |
CN102567820A (zh) | 动态新闻发布和管理系统 | |
US20230359627A1 (en) | Sharing compiled code for executing queries across query engines | |
CN109241054A (zh) | 一种多模型数据库系统、实现方法以及服务器 | |
US8468117B1 (en) | System, method and computer program product for creating a visual component for tenants of an on-demand database service | |
KR20020050160A (ko) | 오브젝트 통합 관리 시스템 | |
CN103390208A (zh) | 控制系统资产管理 | |
CN103020318A (zh) | 一种对数据库中数据库表维护的方法 | |
CN107180110A (zh) | 一种基于DataTable的高效数据库接口的实现方法 | |
WO2023278943A1 (en) | Registering additional type systems using a hub data model for data processing | |
US8935474B1 (en) | Policy based storage of object fragments in a multi-tiered storage system |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170919 |