Object-Relation Mapping 호환되지 않는 type system들 끼리의 데이터 변환을 해 주는 기술이다. 보통 RDBMS에 대해서 많이 사용한다.
python ORM 구현 라이브러리.
OOP에서 RDMBS를 제어하는 것이 어떤 문제가 있나?
# ORM을 사용했을 때
import psycopg2
cursor = connection.cursor()
postgres_insert_query = """ INSERT INTO mobile (ID, MODEL, PRICE) VALUES (%s,%s,%s)"""
record_to_insert = (5, 'One Plus 6', 950)
cursor.execute(postgres_insert_query, record_to_insert)
connection.commit()
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class mobile(Base):
__tablename__ = "mobile"
id = Column(Integer, primary_key=True)
model = Column(Text)
price = Column(Ingeger)
engine = create_engine("postgres://user passwd host port db_name")
Session = sessionmaker()
Session.configure(bind=engine)
session = Session()
session.add(mobile(id=1, model="Note2", price="100"))
session.commit()
session.close()