The invention relates to the technical field of database data processing, in particular to a method capable of guaranteeing SQL integrity and dynamically changing, including the following steps: parsing SQL into syntax tree objects according to SQL multilevel keywords and caching them; deleting or retaining corresponding nodes or branches to generate new ones according to the keywords of the incoming parameters Syntax tree; generate new SQL statements according to the actual running database and new syntax tree; execute SQL statements in the database; solve the problem that some ORM frameworks can be compatible with a variety of databases through object-relational mapping technology, but there are flexibility problems, ORM flexibility is poor, not easy to splice SQL.
【技术实现步骤摘要】
一种能够保证SQL完整性且能动态变动的方法
本专利技术涉及数据库数据处理
,具体涉及一种能够保证SQL完整性且能动态变动的方法。
技术介绍
SQL是目前很流行的一种关系数据库操作程序语言,在IT行业中无论大小项目中基本都会用到它。在软件开发中为了实现一个复杂查询,往往会用到动态拼接SQL才能满足需求,拼接SQL中往往还要兼容不同数据库的差异。目前一些ORM框架通过对象关系映射等技术可以兼容多种数据库,但是存在着灵活性问题,ORM灵活性较差,不能方便的拼接SQL。
技术实现思路
本专利技术的目的在于提供一种能够保证SQL完整性且能动态变动的方法,解决了目前一些ORM框架通过对象关系映射等技术可以兼容多种数据库,但是存在着灵活性问题,ORM灵活性较差,不能方便的拼接SQL的问题。为解决上述的技术问题,本专利技术采用以下技术方案:一种能够保证SQL完整性且能动态变动的方法,包括以下步骤:1)根据SQL多级关键字将SQL解析成语法树对象并缓存起来;2)根据传入参数关键字删除或保留相应的节点或者分支生成新的语法树;3)根据实际运行的数据库和新的语法树生成新的SQL语句;4)到数据库里执行SQL语句。进一步的,所述根据SQL多级关键字将SQL解析成语法树之前,格式化SQL模板,去掉多余换行符和多余空格和注释。进一步的,所述SQL多级关键字包括:“select”、“from”、“insert”、“update”、“innerjoin”、“leftjoin”、“>”、“<”、“like”、“and”和“or”中的一种或多种。进一步的,所述根据 ...
【技术保护点】
1.一种能够保证SQL完整性且能动态变动的方法,其特征在于,包括以下步骤:1)根据SQL多级关键字将SQL解析成语法树对象并缓存起来;2)根据传入参数关键字删除或保留相应的节点或者分支生成新的语法树;3)根据实际运行的数据库和新的语法树生成新的SQL语句;4)到数据库里执行SQL语句。
【技术特征摘要】
1.一种能够保证SQL完整性且能动态变动的方法,其特征在于,包括以下步骤:1)根据SQL多级关键字将SQL解析成语法树对象并缓存起来;2)根据传入参数关键字删除或保留相应的节点或者分支生成新的语法树;3)根据实际运行的数据库和新的语法树生成新的SQL语句;4)到数据库里执行SQL语句。2.根据权利要求1所述的一种能够保证SQL完整性且能动态变动的方法,其特征在于:根据SQL多级关键字将SQL解析成语法树之前,格式化SQL模板,去掉多余换行符和多余空格和注释。3.根据权利要求1或2所述的一种能够保证SQL完整性且能动态变动的方法,其特征在于:所述SQL多级关键字包括:“select”、“from”、“insert”、“update”、“innerjoin”、“leftjoin”、“>”、“<”、“like”、“and”和“or”中的一种或多种。4.根据权利要求1或2所述的一种能够保证SQL完整性且能动态变动的方法,其特征在于:所述根据SQL多级关键字将SQL解析成语法树,具体是:先将SQL语句进行格式检查,去除多余的空格和回车换行等字符,然后将字符串按照空格进行切分,然后判断切分的每一段是否是对应的关键字,如果是则把该段作为一个树的节点,下一个段如果是关键字做作为树...
【专利技术属性】
技术研发人员:甄建廷,
申请(专利权)人:弘成科技发展有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。