Aestate
sqlOpera.py
Go to the documentation of this file.
1 # -*- utf-8 -*-
2 import re
3 
4 
5 class TextUtil(object):
6  """
7  sql操作工具
8  """
9 
10  @staticmethod
11  def replace_antlr(sql, **kwargs):
12  """
13  :param sql:具有特殊含义的sql语句
14  """
15  # #{}使用%s隔离
16  sub_sql = re.sub(r'#{(.*?)}', '%s', sql)
17  context_hashtag = re.findall(r'#{(.*?)}', sql)
18  new_args = [kwargs[i] for i in context_hashtag]
19 
20  # ${}直接替换
21  context_dollar = re.findall(r'\${(.*?)}', sub_sql)
22  for cd in context_dollar:
23  # 只有int需要转换
24  if isinstance(kwargs[cd], int):
25  kwargs[cd] = str(kwargs[cd])
26  sub_sql = sub_sql.replace('${' + cd + '}', kwargs[cd])
27  return sub_sql, new_args
aestate.util.sqlOpera.TextUtil.replace_antlr
def replace_antlr(sql, **kwargs)
Definition: sqlOpera.py:11
aestate.util.sqlOpera.TextUtil
Definition: sqlOpera.py:5