개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스, 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 어노테이션을 사용할 수 있다. - 자동으로 Connection close() 가능 - MyBatis 내부적으로 PreparedStatement 처리 - 리턴 타입을 지정하면, 자동으로 객체 생성및 ResutlSet 으로 처리 https://mybatis.org/mybatis-3/ko/index.html 1. pom.xml -> MyBatis 관련 maven 라이브러리 추가 1) spring-jdbc/spring-tx : 스프링에서 데이터베이스 처리와 트랜잭션 처리(추가하지 않으면 에러발생됨) 2) mybatis/mybatis-spring : MyBatis와 스프링 연동 라이브러리 pom.xml
2. root-context.xml -> MVC 설정과 관련된 여러 처리를 담당 - SqlSessionFactory는 데이터베이스와의 연결과 SQL의 실행에 대한 모든 것을 가진 가장 중요한 객체 - bean : 주입을 하고자하는 기능, 목적 - ref -> bean중에 id 찾기 !!!!!
3.org.ex00.persistence -> DAO 역할의 패키지 생성 4. root-context.xml -> Class들을 bean으로 만들어주는 코드 작성 - class들이 모두 bean 성격이 되야함 - context:component-scan : 해당 패키지를 찾아가서 해당 클래스를 bean으로 생성 -> 스프링 컨테이너에 등록 - 잊어버리는 경우가 많으니 미리 코드 작성해주기
5. DAO 인터페이스 생성 -> 다형성
6. DAO 인터페이스를 상속받는 클래스 생성 -> 다형성 - 데이터 베이스와 연결된 작업을 하는 클래스 - @Repository 또는 @Component 어노테이션 꼭 작성하기
7. BoardMapper.xml -> sql 쿼리 작성 - select sysdate from dual; --> sql 복사시 ; 제외 - BoardMapper.xml은 BoardDAO의 제어를 받음 - namespace와 id를 이용해 sql문을 읽어옴
8. BoardDAOImpl implements BoardDAO -> 본격적인 DB관련 작업 코드 작성 -Inject : 주입하는 대상
9. 테스트 페이지 -> BoardDAOTest 클래스 생성 - 경로 : src/text/java 에서 package org.ex00.persistence 안에 생성 - 테스트 결과(console출력) INFO : org.ex00.persistence.BoardDAOTest - 2020-08-05 22:49:47.0 |