ORM solution
: Query, Connection, Transaction 처리 등을 Framwork가 대신 처리하여 Business Logic에 집중할 수 있게 해준다.
: 마이바티스는 JDBC로 처리하는 상당부분의 코드와 수동적인 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다(출처:https://mybatis.org/mybatis-3/ko/index.html).
Ex) Mybatis vs JDBC
Configuration.xml 파일에 의존하여 SqlSessionFactory 객체 주입
Configuration.xml
UNPOOLED
: 요청 마다 커넥션을 열고 닫는 간단한 DataSource이다. 5개의 properities가 설정된다.
① driver: jdbc 드라이버의 경로
② url: jdbc url
③ username
④ password
⑤ defaultTransactionIsolationLevelPOOLED
: DataSource에 풀링이 적용된 JDBC 커넥션을 위한 구현체이다. Connection 인스턴스를 생성하기 위해 매번 초기화하는 것을 피하게 해준다.
① poolMaximumActiveConnections: 활성화된 최대 커낵션 수, 디폴트 10
② poolMaximumIdleConnetion: 유휴 상태에서 최대 커넥션 수
③ poolMaximumCheckoutTime: 최대 커넥션 시간, 디폴트 20초
④ poolPingEnabled: 커넥션 ping 테스트 여부 (ex) true
⑤ poolPingQuery: 커넥션 ping 테스트 쿼리, 디폴트 "핑쿼리 없음" (ex) selct 1
⑥ poolPingConnectionsNotUsedFor: ping 쿼리가 얼마나 자주 사용될 지 설정, 디폴트 0
⑦ poolTimeToWait: 사용된 커넥션을 기다리는 시간, 디폴트 20초
emp.xml
- 다중 삭제 dml
: delete from 테이블명 where 컬럼명 in (값, 값, 값... )
표준 db 연동보다 상당부분 그 코드의 양이 줄어있음을 알 수 있다.
※ SqlSessionFactory는 application scope...
: 싱글톤 혹은 싱글톤 static으로 관리해 주어야 한다.[SqlSessionFactory를 싱클톤 static으로 관리하는 MybatisConnectMgr 클래스]
[결과] 줄어든 db연동 코드