示例#1
0
 def test_all_wrong_result(self):
     try:
         mybatis_mapper2sql.get_statement(self.mapper,
                                          result_type='sql',
                                          strip_comments=True)
     except RuntimeError as e:
         self.assertEqual(str(e), 'Invalid value for sql_type: raw|list')
     else:
         self.fail('IOError not raised')
示例#2
0
def generate_sql(text):
    """
    从SQL文本、MyBatis3 Mapper XML file文件中解析出sql 列表
    :param text:
    :return: [{"sql_id": key, "sql": soar.compress(value)}]
    """
    # 尝试XML解析
    try:
        mapper, xml_raw_text = mybatis_mapper2sql.create_mapper(
            xml_raw_text=text)
        statements = mybatis_mapper2sql.get_statement(mapper,
                                                      result_type='list')
        rows = []
        # 压缩SQL语句,方便展示
        for statement in statements:
            for key, value in statement.items():
                row = {"sql_id": key, "sql": value}
                rows.append(row)
    except xml.etree.ElementTree.ParseError:
        # 删除注释语句
        text = sqlparse.format(text, strip_comments=True)
        statements = sqlparse.split(text)
        rows = []
        num = 0
        for statement in statements:
            num = num + 1
            row = {"sql_id": num, "sql": statement}
            rows.append(row)
    return rows
示例#3
0
 def test_all_result(self):
     statement = mybatis_mapper2sql.get_statement(self.mapper,
                                                  result_type='list',
                                                  strip_comments=True)
     print(statement)