CN105488147A - 一种基于sql模板的持久化方法 - Google Patents
一种基于sql模板的持久化方法 Download PDFInfo
- Publication number
- CN105488147A CN105488147A CN201510837539.7A CN201510837539A CN105488147A CN 105488147 A CN105488147 A CN 105488147A CN 201510837539 A CN201510837539 A CN 201510837539A CN 105488147 A CN105488147 A CN 105488147A
- Authority
- CN
- China
- Prior art keywords
- sql
- template
- parameter
- data access
- persistence
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
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)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SQL模板的数据持久化方法。在数据访问时提供SQL语句,而解析SQL语句时,将模板中的动态标签进行分析,形成SQL语法树结构;并在SQL语法树中对参数命名占位符进行动态解析,生成可执行的SQL字符串。本发明能够有效降低项目本地化实施和移植的成本,提高开发效率。
Description
技术领域
本发明涉及计算机服务器应用程序领域,尤其是一种管理信息系统的持久化方法。
背景技术
在当今的管理信息系统软件开发中,数据访问是必不可少的,在数据库技术中,SQL语句是数据库操作的主要方法。
基于Web的管理信息系统软件现在最主要是以B/S浏览器模式开发,基于数据的WEB应用是开发的主流,服务端一般采用数据持久化工具如JDBCTEMPLATE、HIBERNATE、IBATIS等。
WEB应用的数据访问主要是按应用框架的层次,服务层采用JDBC的方式访问数据库,大都使用Hibernate或Ibatis持久化框架。
现在的数据访问框架层次较多,对于开发一些复杂的大型WEB应用,当前的框架有一定的技术管理优势,但结构复杂,开发速度慢,对于一些小型应用就是不太合适,开发成本相关较高。
发明内容
针对现有数据访问框架结构复杂、开发效率低下的问题,本发明提供一种基于SQL模板的数据持久化框架,提供快速的数据访问方法。
为达到上述目的,本发明可采用如下技术方案:
一种基于SQL模板的持久化方法,包括以下步骤:
(1)、数据访问时提供SQL语句,数据访问框架为自动拼成正确的SQL;
(2)、数据访问时提供参数对象,参数对象是JAVA的Map<String,Object>的标准对象,将参数对象做字符串的持久化JSON处理,形式可以在服务端中可以传输的持久化串;
(3)、在数据访问时,将调用传过来的请求参数串反序列化为JAVA中的MAP对象,包含请求参数的所有层次关系;
(4)、解析SQL语句,将模板中的动态标签进行分析,形成SQL语法树结构;
(5)、在SQL语法树中对参数命名占位符进行动态解析,生成可执行的SQL字符串;
(6)、将请求参数置入ONGL的根对象,将SQL中的表达式语言,存取对象的任意属性,调用对象的方法。
与现有技术相比,本发明能够有效降低项目本地化实施和移植的成本,提高开发效率。
附图说明
图1是本方法中的数据访问框架。
具体实施方式
本发明中使用的术语解释:
下面将结合附图对本发明的实施方式进行全面详细阐述。
请参阅图1所示,本发明提供一种基于SQL模板的持久化方法,包括以下步骤:
(1)、数据访问时提供SQL语句,SQL语句是数据标准的格式,也可以提供SQL语句数组,数据访问框架为自动拼成正确的SQL;
(2)、数据访问时提供参数对象,参数对象是JAVA的Map<String,Object>的标准对象,将参数对象做字符串的持久化JSON处理,形式可以在服务端中可以传输的持久化串;
(3)、在数据访问时,将调用传过来的请求参数串反序列化为JAVA中的MAP对象,包含请求参数的所有层次关系;
(4)、解析SQL语句,将模板中的动态标签进行分析,形成SQL语法树结构;
(5)、在SQL语法树中对参数命名占位符进行动态解析,生成可执行的SQL字符串;
(6)、将请求参数置入ONGL的根对象,将SQL中的表达式语言,存取对象的任意属性,调用对象的方法。
进一步的,
本发明还提供JAVA数据访问类库SqlMapService;
本发明提供的JAVA数据访问类库SqlMapService对象,提供以下API方法:
SqlMapService.queryForList
SqlMapService.queryForObject
SqlMapService.queryForBlob
SqlMapService.update
本发明提供服务端各流行数据库(如oracle,mysql等)访问接口组件,实现数据库的兼容;
本发明提供的SQL模板技术,实现动态数据访问机制,模板提供<where>,<if>,<set>,<choose>,<when>动态标签。
另外,本发明的具体实现方法和途径很多,以上所述仅是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
1.一种基于SQL模板的持久化方法,其特征在于,包括以下步骤:
(1)、数据访问时提供SQL语句,数据访问框架为自动拼成正确的SQL;
(2)、数据访问时提供参数对象,参数对象是JAVA的Map<String,Object>的标准对象,将参数对象做字符串的持久化JSON处理,形式可以在服务端中可以传输的持久化串;
(3)、在数据访问时,将调用传过来的请求参数串反序列化为JAVA中的MAP对象,包含请求参数的所有层次关系;
(4)、解析SQL语句,将模板中的动态标签进行分析,形成SQL语法树结构;
(5)、在SQL语法树中对参数命名占位符进行动态解析,生成可执行的SQL字符串;
(6)、将请求参数置入ONGL的根对象,将SQL中的表达式语言,存取对象的任意属性,调用对象的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510837539.7A CN105488147A (zh) | 2015-11-26 | 2015-11-26 | 一种基于sql模板的持久化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510837539.7A CN105488147A (zh) | 2015-11-26 | 2015-11-26 | 一种基于sql模板的持久化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105488147A true CN105488147A (zh) | 2016-04-13 |
Family
ID=55675122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510837539.7A Pending CN105488147A (zh) | 2015-11-26 | 2015-11-26 | 一种基于sql模板的持久化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105488147A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388646A (zh) * | 2018-02-28 | 2018-08-10 | 弘成科技发展有限公司 | 一种能够保证sql完整性且能动态变动的方法 |
CN108762732A (zh) * | 2018-05-30 | 2018-11-06 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582066A (zh) * | 2008-05-13 | 2009-11-18 | 阿里巴巴集团控股有限公司 | 网站系统及基于所述网站系统的数据交互方法 |
CN101980213A (zh) * | 2010-11-23 | 2011-02-23 | 中国科学院软件研究所 | 一种基于j2ee的数据持久化方法及系统 |
CN102279750A (zh) * | 2011-08-30 | 2011-12-14 | 浙江大学 | 一种基于领域知识共享的迭代式代码生成方法 |
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN103955538A (zh) * | 2014-05-19 | 2014-07-30 | 携程计算机技术(上海)有限公司 | HBase数据持久和查询方法及HBase系统 |
CN104462463A (zh) * | 2014-12-17 | 2015-03-25 | 南京莱斯信息技术股份有限公司 | JavaScript基于SQL模板的数据访问方法 |
-
2015
- 2015-11-26 CN CN201510837539.7A patent/CN105488147A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582066A (zh) * | 2008-05-13 | 2009-11-18 | 阿里巴巴集团控股有限公司 | 网站系统及基于所述网站系统的数据交互方法 |
CN101980213A (zh) * | 2010-11-23 | 2011-02-23 | 中国科学院软件研究所 | 一种基于j2ee的数据持久化方法及系统 |
CN102279750A (zh) * | 2011-08-30 | 2011-12-14 | 浙江大学 | 一种基于领域知识共享的迭代式代码生成方法 |
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN103955538A (zh) * | 2014-05-19 | 2014-07-30 | 携程计算机技术(上海)有限公司 | HBase数据持久和查询方法及HBase系统 |
CN104462463A (zh) * | 2014-12-17 | 2015-03-25 | 南京莱斯信息技术股份有限公司 | JavaScript基于SQL模板的数据访问方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388646A (zh) * | 2018-02-28 | 2018-08-10 | 弘成科技发展有限公司 | 一种能够保证sql完整性且能动态变动的方法 |
CN108762732A (zh) * | 2018-05-30 | 2018-11-06 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
CN108762732B (zh) * | 2018-05-30 | 2019-06-11 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索系统 | |
CN110837492B (zh) | 一种多源数据统一sql提供数据服务的方法 | |
CN101901265B (zh) | 一种虚拟试验数据对象化管理系统 | |
Holzschuher et al. | Querying a graph database–language selection and performance considerations | |
CN103729463A (zh) | 基于Lucene和Solr实现全文检索的方法 | |
CN103810275A (zh) | 用于非关系与关系型数据库间数据交互的方法和装置 | |
US8881127B2 (en) | Systems and methods to automatically generate classes from API source code | |
CN103699638A (zh) | 一种基于配置参数实现跨数据库类型同步数据的方法 | |
CN103309806B (zh) | 一种快速开发测试的装置及方法 | |
GB2576654A (en) | Method and apparatus for facilitating creation of simulation model | |
US9563650B2 (en) | Migrating federated data to multi-source universe database environment | |
US11061964B2 (en) | Techniques for processing relational data with a user-defined function (UDF) | |
CN108052635A (zh) | 一种异构数据源统一联合查询方法 | |
WO2018176822A1 (zh) | 一种操作ElasticSearch的方法及装置 | |
CN105224613A (zh) | 基于数据联邦技术的异构数据源整合系统及其整合方法 | |
CN105447051A (zh) | 一种数据库操作的方法和装置 | |
CN112930529A (zh) | 从概念数据模型生成软件工件 | |
US9971794B2 (en) | Converting data objects from multi- to single-source database environment | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN104699758A (zh) | 一种图文库关联的指挥文书智能生成系统与方法 | |
WO2018233673A1 (zh) | 一种控制器中模型代码配置方法和装置、存储介质 | |
Choi et al. | Improving database system performance by applying NoSQL | |
CN105488147A (zh) | 一种基于sql模板的持久化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20160413 |