0. sqlalchemy는 기존의 자바-스프링과 다른듯.
매퍼가 따로 필요없나? 싶기도 하고, mybatis와 같은 프레임웍인가 싶기도 하고
아직도 감을 못잡겠다.
1. DB와의 접속을 위에 session()을 선헌해주고 이를 가져온다.
#공간확보 session = Session() # DB 접속을 위해 세션에 연결한다. 당연히 이 Session은 create_engine을 통해 DB와 연결을 해야한다.. 이건 나중에.. query = session.query(users) #괄호 안에 테이블, 또는 테이블.칼럼명(users.id) 이런식으로 하여 연결한다 # 여기서 query 자체는 그냥 쿼리문이다! 데이터를 가져오려면 query.all() query.first() # 등을 해야한다 query = session.query(users).all() # select * from users query = session.query(users.id) # select id from users query = session.query(users.id, users.email) # select id, email fromusers # filter, func 등을 사용하면 where, 집계 함수 등을 사용할 수 있다. query = session.query(user).filter(user.id = 'test') # select * from users where id = 'test' query = session.queyr(user).filter(user.id = 'test).filter(user.email = 'gamil') # select * from user where id = 'test and email = 'gmail' # 위 쿼리는 모양이 바로 이해가 안간다. 이럴경우 and_ 를 임포트 해서 filter에 사용하면 된다.(or_ 등도 다 임포트 해야함) query = session.query(user).filter(and_(user.id = 'test', user.email = 'gmail') #all()를 통해 가져온 값은 리스트이고 sqlalchemy_results 객체이다. # 쉽게 생각하면 해당 테이블의 칼럼 값들의 튜플 형태이다. # 결과값에서 칼럼들의 값을 동적으로 뽑고 싶은경우(또는 넣고싶은 경우)에는 getattr, setattr을 사용한다 getattr(query, id) setattr(query, id, 'kkk') # 이거를 왜 언급하냐면 쿼리문의 결과값은 리스트가 아니라서 query['id'] 이런식으로 못가져온다. # query.id 이렇게 해야 가져와진다. # dot point는 변수를 통해서 접근이 안된다 temp = 'id' query.temp # query.id로 인식을 못함