목록MyBatis (2)
코딩마을방범대
#{} 쿼리문이 실행되면 아래와 같이 쿼리문에 ?가 생기며 파싱 #{}을 사용하는 경우 PreparedStatement를 생성 파싱된 쿼리문은 재활용(캐싱)되기 때문에 효율적 변수에 작은 따옴표(')를 자동으로 붙여 쿼리가 수행됨 SELECT name, email FROM user WHERE id = ? 단점 변수 양쪽에 따옴표가 붙기 때문에 value가 아닌 곳에선 사용 불가 (SQLSyntaxErrorException 발생) 예) 아래에선 "FROM user_'1'" 이런식으로 파싱되기 때문에 오류 발생함 SELECT name AS name FROM user_#{tableId} WHERE id = #{id} ${} 값이 넣어진 채로 쿼리문이 수행됨 (파라미터의 값이 바뀔 때마다 항상 쿼리문 파싱을 진..

MyBatis란 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크 SQL쿼리들을 한 구성파일(xml)에 구성하여 프로그램 코드와 SQL문을 분리할 수 있음 데이터소스(DataSource) 기능과 트랜잭션 처리 기능을 제공 특징 SQL문을 그대로 사용하여 커스터마이징한 sql문 구성이 가능함 비슷한 쿼리는 여러 번 사용할 수 밖에 없음 주요 컴포넌트 MyBatis 설정파일 고정된 환경정보를 설정(데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등) (예:SqlMapConfig.xml) SqlSessionFactoryBuilder MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성 SqlSessionFac..