다른 명령
새 문서: == 모듈 설치 == <source lang=python> pip install mybatis-mapper2sql </source> == 사용법 == <source lang=python> import mybatis_mapper2sql # Parse Mybatis Mapper XML files mapper, xml_raw_text = mybatis_mapper2sql.create_mapper(xml='mybatis_mapper.xml') # Get All SQL Statements from Mapper statement = mybatis_mapper2sql.get_statement(mapper) # Get SQL Statement By SQLId statement = mybatis_mapper2sql.get_child_statement(mapper, sql_id) </source> === MyBatis Xml 파싱하... |
잔글 개발노트 양식 일괄 적용 |
||
| 1번째 줄: | 1번째 줄: | ||
{{개발노트 | |||
|요약=mybatis_to_db.py | |||
|핵심= | |||
|분야=Python | |||
|작성일=2024-10-04 | |||
}} | |||
== 모듈 설치 == | == 모듈 설치 == | ||
<source lang=python> | <source lang=python> | ||
2026년 11월 12일 (목) 12:44 기준 최신판
DEVCAFE NOTE
Pythonmybatis_to_db.py
KEY POINTS · 핵심 정리
모듈 설치
pip install mybatis-mapper2sql
사용법
import mybatis_mapper2sql # Parse Mybatis Mapper XML files mapper, xml_raw_text = mybatis_mapper2sql.create_mapper(xml='mybatis_mapper.xml') # Get All SQL Statements from Mapper statement = mybatis_mapper2sql.get_statement(mapper) # Get SQL Statement By SQLId statement = mybatis_mapper2sql.get_child_statement(mapper, sql_id)
MyBatis Xml 파싱하여 오라클 디비에 입력 처리
- mybatis_to_db.py
#-*- coding: utf-8 -*-
import cx_Oracle
import mybatis_mapper2sql
import os
import sys
# 64bit Oracle Clinet 미설치시 사용
LOCATION = r"D:\oracle_inst_64\instantclient_21_10"
os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"]
#os.environ["NLS_LANG"]="AMERICAN_AMERICA.AL32UTF8"
# D:\oracle_inst_64\instantclient_21_10
mapper, xml_raw_text = mybatis_mapper2sql.create_mapper(xml="d:\\python\\sql\\"+sys.argv[1]) # 처리할 파일을 1번째 파라미터로 받음.
# statement = mybatis_mapper2sql.get_statement(mapper, result_type='raw', reindent=True, strip_comments=True) # raw형태 파일로 처리 (파일로 저장 )
statement = mybatis_mapper2sql.get_statement(mapper, result_type='list', reindent=True, strip_comments=True) # list형으로 리턴 (DB에 입력 처리 편리)
con = cx_Oracle.connect("COMMON", "1234", "111.222.333.444:49154/ORCLPDB1", encoding="UTF-8")
cursor = con.cursor()
# statement는 리스트 + 딕셔너리 형태로 구성됨 [{키:값},{키:값}] => 디비에 입력하기위해서 튜플형태로 변경 list(zip(d.keys(), d.values())
for d in statement:
cursor.executemany("INSERT INTO URP_XML_PARSE (FILE_NM,SQL_ID,SQL_TEXT) values ('"+sys.argv[1]+"',:1,:2)",list(zip(d.keys(), d.values())))
con.commit()
- 실행 방법
python mybatis_to_db.py test.xml