CN111078726A - 数据访问层的操作方法、服务器及存储介质 - Google Patents

数据访问层的操作方法、服务器及存储介质 Download PDF

Info

Publication number
CN111078726A
CN111078726A CN201911291684.4A CN201911291684A CN111078726A CN 111078726 A CN111078726 A CN 111078726A CN 201911291684 A CN201911291684 A CN 201911291684A CN 111078726 A CN111078726 A CN 111078726A
Authority
CN
China
Prior art keywords
sql statement
function
dynamic sql
access layer
data access
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.)
Granted
Application number
CN201911291684.4A
Other languages
English (en)
Other versions
CN111078726B (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.)
Xiamen Wangsu Co Ltd
Original Assignee
Xiamen Wangsu 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 Xiamen Wangsu Co Ltd filed Critical Xiamen Wangsu Co Ltd
Priority to CN201911291684.4A priority Critical patent/CN111078726B/zh
Publication of CN111078726A publication Critical patent/CN111078726A/zh
Application granted granted Critical
Publication of CN111078726B publication Critical patent/CN111078726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

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

Abstract

本发明实施例涉及计算机技术领域,特别涉及一种数据访问层的操作方法、服务器及存储介质。数据访问层的操作方法,包括:预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。采用本发明的实施例,能够有效提升数据访问层的可维护性。

Description

数据访问层的操作方法、服务器及存储介质
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种数据访问层的操作方法、服务器及存储介质。
背景技术
SpringJDBC(Java Data Base Connectivity)框架提供连接各种数据库的能力,便于程序员快速对数据库进行访问和操作,并将操作结果提供给服务对象;该框架中,数据访问层(DAO层)位于业务逻辑和数据库之间,封装了对数据库进行访问和操作的语句(例如结构化查询语句,即sql语句),能够实现对数据库中数据的实际访问和操作。相关技术中,为了便于对数据访问层中sql语句的管理,预先将sql语句编写在另外的配置文件中,并在编写DAO层的项目文件时调用该配置文件,使得配置文件中的sql语句在DAO层的项目文件运行时一并被执行。然而发明人发现相关技术中存在如下问题:由于预先编写的配置文件是完整被调用在DAO层的项目文件中的,属于DAO层的项目文件的一部分,因此在对配置文件中的sql语句进行修改后,需要重新启动DAO层的项目文件,才能使得修改后的配置文件生效,从而导致对于DAO层的修改配置的过程较为复杂且耗时较长。
发明内容
本发明实施例的目的在于提供一种数据访问层的操作方法、服务器及存储介质,能够有效提升数据访问层的可维护性。
为解决上述问题,本发明的实施例提供了一种数据访问层的操作方法,包括:预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。
本发明的实施例还提供了一种服务器,包括:存储模块,用于预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;查询模块,用于在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;执行模块,用于渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。
本发明的实施例还提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述数据访问层的操作方法。
本发明的实施例还提供了一种计算机存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述数据访问层的操作方法。
本发明实施例相对于现有技术而言,预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。由于数据访问层中的函数对应的动态sql语句是预先存储在预设的数据表中的,只有在需要使用时才将其从数据表中取出并使用,也就是将sql语句从数据访问层中剥离了出来,使得数据访问层的简洁度和可读性得到了提升;当需要根据实际需求对动态sql语句进行修改时,只需前往数据表中对存储的动态sql语句进行修改即可,无需修改已经编写好的数据访问层的项目文件;又因为动态sql语句是在调用对应的函数时才会被从数据表中取出并使用,存储在数据表中的动态sql语句并不包含在数据访问层的项目文件中,因此在对数据表中存储的动态sql语句进行修改后,并未对已经编写好的数据访问层的项目文件造成影响,也就是无需重新启动数据访问层的项目文件,从而使得对于数据访问层的修改配置的过程变得十分方便快捷,有效提升了数据访问层的可维护性。
另外,所述预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:以键值对的形式在所述数据表中存储所述函数的名称和与所述函数对应的动态sql语句,也就是作为键(key)的方法和作为值(value)的动态sql语句是对应存储的,通过这种方式所存储的数据量大,数据的对应关系十分直观,有助于快速的根据函数的名称查询到对应的动态sql语句。
另外,所述从所述数据表中查询得到所述函数对应的动态sql语句,包括:通过向预先定义的查询函数传入被调用的所述函数的名称,得到被调用的所述函数对应的动态sql语句,所述查询函数用于根据函数的名称从所述数据表中查询得到与函数的名称对应的动态sql语句。上述提供了一种查询动态sql语句的方式,预先定义的获取函数便于直接被调用,而无需在查询动态sql语句时再进行查询代码的编写,有助于提升数据访问层的简洁度和可读性。
另外,所述渲染所述动态sql语句,包括:向所述动态sql语句传入查询条件,根据所述查询条件和预设的freemarker模板对所述动态sql语句进行渲染。
另外,所述预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:通过预设的人机交互界面,在所述数据表中存储与数据访问层中的函数对应的动态sql语句;可以理解的是,预设的人机交互界面使得存储动态sql语句的操作变得十分方便快捷,降低了操作的复杂程度。
另外,所述方法还包括:通过所述人机交互界面,修改所述数据表中已存储的动态sql语句;可以理解的是,还可以通过该人机交互界面对数据表中已经存储的动态sql语句进行修改,可视化的人机交互界面使得对于动态sql语句的修改等操作变得十分方便快捷,降低了操作的复杂程度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是根据本发明第一实施例中的数据访问层的操作方法的流程图;
图2是根据本发明第二实施例中的数据访问层的操作方法的流程图;
图3是根据本发明第二实施例中的人机交互界面的示意图;
图4是根据本发明第二实施例中的另一种人机交互界面的示意图;
图5是根据本发明第三实施例中的服务器的结构方框图;
图6是根据本发明第四实施例中的服务器的结构方框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种数据访问层的操作方法,具体流程如图1所示,包括以下步骤。
步骤101,预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;
步骤102,在调用函数时,从数据表中查询得到函数对应的动态sql语句;
步骤103,渲染动态sql语句,并执行渲染后得到的可执行sql语句。
下面对本实施例的数据访问层的操作方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
在步骤101中,预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,此处预设的数据库可以理解为sql数据库,数据访问层中的函数可以理解为数据访问层的代码中定义的函数;根据实际需求的不同,函数对应的sql语句也存在不同,并非是固定不变的,也就是说,根据实际使用sql语句进行查询时的查询条件不同,函数对应的sql语句存在不同,因此此处存储的与函数对应的动态sql语句,可以理解为查询条件不固定的sql语句。
在一个实例中,预设有用于存储用户数据的User表(用户表)如表1所示。
表1
name(姓名字段) age(年龄字段)
张三 34
王五 25
小六 25
数据访问层中存在函数getUserByNameAndAge,该函数用于根据Name(姓名字段)和Age(年龄字段)从User表中查询出用户;在预设的用于存储与数据访问层中的函数对应的动态sql语句的数据表中,存储有与函数getUserByNameAndAge对应的动态sql语句如下:
Select*from User where
<#if name!=null>
name=${name}
</#if>and age=${age}
上述动态sql语句根据name(姓名字段)和age(年龄字段)对用户进行查询。例如,当name=‘张三’且age=‘34’时,查询得到用户‘张三’;当name为空且age=‘25’时,name不作为查询条件,查询得到用户‘王五’和‘小六’。
本步骤中提供了一种存储与数据访问层中的函数对应的动态sql语句的具体方式,即以键值对的形式在数据表中存储函数的名称和与函数对应的动态sql语句,也就是键列(key列)存储函数的名称,对应的值列(value列)存储与函数对应的动态sql语句。以键值对的形式在数据表中存储数据时,所存储的数据量大,数据的对应关系十分直观,有助于快速的根据函数的名称查询到对应的动态sql语句。在一个实例中,函数getUserByNameAndAge和与其对应的动态sql语句以键值对的形式存储在数据表sql_manager中,如下表2所示:
表2
Figure BDA0002319318960000051
其中,本实例中的key列存储的是函数getUserByNameAndAge所在的类名和函数名称,即函数getUserByNameAndAge是数据访问层中的类UserDAO下的一个函数。
在步骤102中,在调用函数时,从数据表中查询得到函数对应的动态sql语句;可以理解的是,采用本发明的实施例时,并不直接在数据访问层中编写函数对应的sql语句,而是在调用函数时,才将动态sql语句从预设的数据表中取出,也就是将sql语句从数据访问层中剥离了出来,使得数据访问层的简洁度和可读性得到了提升。
本步骤中提供了一种从数据表中查询得到函数对应的动态sql语句的方法,包括:
(1)预先定义查询函数,查询函数用户根据函数的名称从数据表中查询得到函数的名称对应的动态sql语句;
(2)通过向预先定义的查询函数传入被调用的函数的名称,得到被调用的函数对应的动态sql语句。
在一个实例中,预先定义查询函数的过程可如下所示:
Figure BDA0002319318960000052
上述过程中定义了一个名为SqlManagerDAO的类,在类中定义了一个名为sqlManagerD AO.getValue的函数,通过sql语句“select*from sql_manager where key=?”可知,sqlMan agerDAO.getValue函数用于从步骤101中预设的数据表sql_manager中根据key的值(函数的名称)来查询出value的值(与函数对应的动态sql语句),即sqlManagerDAO.getValue函数就是指本步骤中的查询函数。
在调用函数时,通过查询函数得到被调用的函数对应的动态sql语句的过程可如下所示:
String falseSql=sqlManagerDAO.getValue(key:"UserDAO.getUserByNameAndAge");
上述过程中falseSql表示查询得到的动态sql语句,向预先定义的查询函数(sqlManagerDAO.getValue函数)传入被调用的函数名称“UserDAO.getUserByNameAndAge”,也就是为key赋值了被调用的函数名称,从而查询函数从预设的数据表sql_manager中根据key的值来查询出value的值,得到的是与被调用的函数对应的动态sql语句。预先定义的获取函数便于直接被调用,而无需在查询动态sql语句时再进行查询代码的编写,有助于提升数据访问层的简洁度和可读性。
可以理解的是,当需要根据实际需求对动态sql语句进行修改时,只需前往数据表中对存储的动态sql语句进行修改即可,无需修改已经编写好的数据访问层的项目文件;又因为动态sql语句是在调用对应的函数时才会被从数据表中取出并使用,存储在数据表中的动态sql语句并不包含在数据访问层的项目文件中,因此在对数据表中存储的动态sql语句进行修改后,并未对已经编写好的数据访问层的项目文件造成影响,也就是无需重新启动数据访问层的项目文件,从而使得对于数据访问层的修改配置的过程变得十分方便快捷,有效提升了数据访问层的可维护性。
在步骤103中,渲染动态sql语句,并执行渲染后得到的可执行sql语句;根据前文可知,动态sql语句可以理解为查询条件不固定的sql语句,本步骤中对动态sql语句渲染后得到的是查询条件确定的可执行sql语句,从而需要在渲染动态sql语句时传入确定的查询条件。本步骤中提供了一种渲染动态sql语句的方法,即向动态sql语句传入查询条件,根据查询条件和预设的freemarker模板对动态sql语句进行渲染,其中,freemarker模板是一种根据模板和为模板配置的参数来生成文本的工具,freemarker模板根据传入的查询条件渲染出可执行的sql语句。
在一个实例中,可预先定义根据预设的freemarker模板来渲染动态sql语句的过程,如下所示:
Figure BDA0002319318960000061
Figure BDA0002319318960000071
上述过程中定义了一个名为process的变量,根据调用变量process来实现对动态sql语句的渲染,其过程如下所示:
Map<String,Object>map=new Hashmap<>();
map.put("name",name);
map.put("age",age);
String truesSql=this.process(map.falseSql);
其中,trueSql表示渲染得到的可执行sql语句,name和age表示提供的查询条件;在实例中,动态sql语句为:
Select*from User where<#if name!=null>name=${name}</#if>and age=${age};
当提供的查询条件为name==null(即name为空)且age=34时,渲染得到的可执行sql语句为:
trueSql=select*from User where age=34;
当提供的查询条件为name=='张三'且age34时,渲染得到的可执行sql语句为:
trueSql=select*from where name='张三'and age=34;
在渲染动态sql语句后执行trueSql,按照传入的查询条件对数据进行查询。
本实例中预设有用于存储用户数据的User表(表1),数据访问层需要根据Name(姓名字段)和Age(年龄字段)从User表中查询出用户,预设有数据表sql_manager用于存储与函数对应的动态sql语句,预先定义有查询函数sqlManagerDAO.getValue函数,预先定义有用于渲染的process变量;采用本实施例中的数据访问层的操作方法进行查询时,过程如下所示:
Figure BDA0002319318960000072
Figure BDA0002319318960000081
(以上执行可执行sql语句的部分,返回结果是sql语句trueSql查询出的用户‘张三’)
本实施例相对于现有技术而言,预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。由于数据访问层中的函数对应的动态sql语句是预先存储在预设的数据表中的,只有在需要使用时才将其从数据表中取出并使用,也就是将sql语句从数据访问层中剥离了出来,使得数据访问层的简洁度和可读性得到了提升;当需要根据实际需求对动态sql语句进行修改时,只需前往数据表中对存储的动态sql语句进行修改即可,无需修改已经编写好的数据访问层的项目文件;又因为动态sql语句是在调用对应的函数时才会被从数据表中取出并使用,存储在数据表中的动态sql语句并不包含在数据访问层的项目文件中,因此在对数据表中存储的动态sql语句进行修改后,并未对已经编写好的数据访问层的项目文件造成影响,也就是无需重新启动数据访问层的项目文件,从而使得对于数据访问层的修改配置的过程变得十分方便快捷,有效提升了数据访问层的可维护性。
本发明第二实施例涉及一种数据访问层的操作方法,本实施例与第一实施例大致相同,本实施例中是通过预设的人机交互界面对动态sql语句进行存储的。本实施例中的数据访问层的操作方法的具体流程如图2所示,包括以下步骤。
步骤201,通过预设的人机交互界面,预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;人机交互界面可以理解为在.net平台上采用B/S结构开发的一个web网页界面,界面上包括用于输入函数名称和与函数对应的动态sql语句的文本框,如图3所示;界面与预设的数据表连接,通过在web网页上进行文本的输入可以实现在预设的数据表中存储动态sql语句的操作,例如图3所示的“存储”控件预设为与sql语句“insert”绑定的控件,可用于在预设的数据表中插入输入的函数名称和与函数对应的动态sql语句。
另外,可以理解的是,在本实施例中,还可通过该人机交互界面对数据库中已经存储的动态sql语句进行修改或删除等操作,在界面上可以查看到已经存储的动态sql语句,例如图4所示的“删除”控件预设为与sql语句“delete”绑定的控件,可用于删除选中的动态sql语句。
步骤202,在调用函数时,从数据表中查询得到函数对应的动态sql语句;此步骤与步骤102大致相同,此处不再赘述。
步骤203,渲染动态sql语句,并执行渲染后得到的可执行sql语句;此步骤与步骤103大致相同,此处不再赘述。
本实施例相对于现有技术而言,通过预设的人机交互界面,向预设的数据表中存储动态sql语句,或是修改数据表中已经存储的动态sql语句,而无需通过编写代码的形式执行上述操作,使得存储动态sql语句的操作变得十分方便快捷,降低了操作的复杂程度。
本发明第三实施例涉及一种服务器,如图5所示,包括:存储模块301,查询模块302和执行模块303。
存储模块301,用于预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;
查询模块302,用于在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;
执行模块303,用于渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。
在一个实例中,所述预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:
以键值对的形式在所述数据表中存储所述函数的名称和与所述函数对应的动态sql语句。
在一个实例中,所述查询模块302从所述数据表中查询得到所述函数对应的动态sql语句,包括:通过向预先定义的查询函数传入被调用的所述函数的名称,得到被调用的所述函数对应的动态sql语句,所述查询函数用于根据函数的名称从所述数据表中查询得到与函数的名称对应的动态sql语句。
在一个实例中,所述执行模块303渲染所述动态sql语句,包括:向所述动态sql语句传入查询条件,根据所述查询条件和预设的freemarker模板对所述动态sql语句进行渲染。
在一个实例中,所述存储模块301预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:通过预设的人机交互界面,在所述数据表中存储与数据访问层中的函数对应的动态sql语句。
在一个实例中,所述存储模块301还用于通过所述人机交互界面,修改所述数据表中已存储的动态sql语句。
不难发现,本实施例为与第一实施例或第二实施例的相对应装置的实施例,本实施例可与第一实施例或第二实施例互相配合实施,第一实施例或第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,此处不再赘述。相应的,本实施例中提到的相关技术细节也可应用在第一实施例或第二实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种服务器,如图6所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述数据访问层的操作方法。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述数据访问层的操作方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种数据访问层的操作方法,其特征在于,包括:
预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;
在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;
渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。
2.根据权利要求1所述的数据访问层的操作方法,其特征在于,所述预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:
以键值对的形式在所述数据表中存储所述函数的名称和与所述函数对应的动态sql语句。
3.根据权利要求2所述的数据访问层的操作方法,其特征在于,所述从所述数据表中查询得到所述函数对应的动态sql语句,包括:
通过向预先定义的查询函数传入被调用的所述函数的名称,得到被调用的所述函数对应的动态sql语句,所述查询函数用于根据函数的名称从所述数据表中查询得到与函数的名称对应的动态sql语句。
4.根据权利要求1所述的数据访问层的操作方法,所述渲染所述动态sql语句,包括:
向所述动态sql语句传入查询条件,根据所述查询条件和预设的freemarker模板对所述动态sql语句进行渲染。
5.根据权利要求1所述的数据访问层的操作方法,其特征在于,所述预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:
通过预设的人机交互界面,在所述数据表中存储与数据访问层中的函数对应的动态sql语句。
6.根据权利要求5所述的数据访问层的操作方法,其特征在于,还包括:
通过所述人机交互界面,修改所述数据表中已存储的动态sql语句。
7.一种服务器,其特征在于,包括:
存储模块,用于预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句;
查询模块,用于在调用所述函数时,从所述数据表中查询得到所述函数对应的动态sql语句;
执行模块,用于渲染所述动态sql语句,并执行渲染后得到的可执行sql语句。
8.根据权利要求7所述的一种服务器,其特征在于,所述存储模块用于预先在预设的数据表中存储与数据访问层中的函数对应的动态sql语句,包括:
通过预设的人机交互界面,在所述数据表中存储与数据访问层中的函数对应的动态sql语句。
9.一种服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-6所述的数据访问层的操作方法。
10.一种计算机存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的数据访问层的操作方法。
CN201911291684.4A 2019-12-16 2019-12-16 数据访问层的操作方法、服务器及存储介质 Active CN111078726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911291684.4A CN111078726B (zh) 2019-12-16 2019-12-16 数据访问层的操作方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911291684.4A CN111078726B (zh) 2019-12-16 2019-12-16 数据访问层的操作方法、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111078726A true CN111078726A (zh) 2020-04-28
CN111078726B CN111078726B (zh) 2022-11-04

Family

ID=70314684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911291684.4A Active CN111078726B (zh) 2019-12-16 2019-12-16 数据访问层的操作方法、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111078726B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200204A1 (en) * 2002-04-19 2003-10-23 Limoges Joseph Serge Substituting parameter markers for literals in database query language statement to promote reuse of previously generated access plans
CN104166705A (zh) * 2014-08-06 2014-11-26 广州华多网络科技有限公司 数据库的访问方法及装置
CN105373536A (zh) * 2014-08-19 2016-03-02 阿里巴巴集团控股有限公司 一种实现dao接口的方法及装置
CN109582691A (zh) * 2018-11-15 2019-04-05 百度在线网络技术(北京)有限公司 用于控制数据查询的方法和装置
CN110502530A (zh) * 2019-07-03 2019-11-26 平安科技(深圳)有限公司 数据库函数调用方法、系统、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200204A1 (en) * 2002-04-19 2003-10-23 Limoges Joseph Serge Substituting parameter markers for literals in database query language statement to promote reuse of previously generated access plans
CN104166705A (zh) * 2014-08-06 2014-11-26 广州华多网络科技有限公司 数据库的访问方法及装置
CN105373536A (zh) * 2014-08-19 2016-03-02 阿里巴巴集团控股有限公司 一种实现dao接口的方法及装置
CN109582691A (zh) * 2018-11-15 2019-04-05 百度在线网络技术(北京)有限公司 用于控制数据查询的方法和装置
CN110502530A (zh) * 2019-07-03 2019-11-26 平安科技(深圳)有限公司 数据库函数调用方法、系统、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111078726B (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
US20180107725A1 (en) Data Storage Method and Apparatus, and Data Read Method and Apparatus
US10216826B2 (en) Database query system
US8438190B2 (en) Generating web services from business intelligence queries
CN112506946A (zh) 业务数据查询方法、装置、设备及存储介质
WO2017189025A1 (en) System and method for updating target schema of graph model
CN111177788A (zh) Hive的动态脱敏方法及动态脱敏系统
CN111797073B (zh) 数据库管理方法、电子设备与计算机可读存储介质
US9967370B2 (en) OData enabled mobile software applications
CN108197091B (zh) 一种创建数据表的方法、系统及相关设备
CN103970758A (zh) 数据库访问系统及方法
CN106354483B (zh) 一种数据处理方法、装置及电子设备
CN108279882B (zh) 框架生成方法、装置、设备及计算机可读介质
CN112182349B (zh) 合规档案的查询方法、装置及系统
CN110941614A (zh) 表单生成方法、装置、电子设备及计算机可读存储介质
CN110069248A (zh) 接口数据的调用方法、装置、设备及计算机可读存储介质
CN108228762B (zh) 用于配置主数据库通用模板的方法和系统
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
CN115617338A (zh) 一种业务页面快速生成方法、装置及可读存储介质
CN104361040A (zh) 一种定制查询的方法及装置
CN112540995B (zh) 数据更新方法、电子设备及存储介质
US11157506B2 (en) Multiform persistence abstraction
CN117194389A (zh) 基于sql的数据库兼容方法和装置、电子设备和存储介质
CN110297843B (zh) 用于b/s系统的数据查询方法及系统、终端
CN111078726B (zh) 数据访问层的操作方法、服务器及存储介质
CN111209406B (zh) 本体知识库实例数据维护方法和装置

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