Mybatis Mybaits는 자바 Object와 SQL 사이를 자동으로 매핑해주는 기능을 지원하는 영속성(Persistence) 프레임워크이다. Mybatis의 장점 1. 쉬운 접근성과 코드의 간결함 - jdbc의 모든기능을 Mybattis가 제공하고 있기에 복잡한 jdbc코드를 걷어내고 깔끔한 소스코드를 유지할 수 있다. - 간단한 persistence framwork. 배우기가 쉽다. - 생산성 : 62%정도 줄어드는 코드, 간단한 설정 2. 성능과 생산성 - sql에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일할 필요가 없다. - 성능 : 데이터 접근 속도를 높여주는 Join 매핑(구조적 강점) , SQL를 직접작성하므로 최적화된 쿼리 구현가능 - 엔터티에 종속받지 않고 다양한 테이블을 조합..
들어가며 Mybatis는 자바 ORM(Object Relational Mapping) 프레임워크 중 하나로, SQL 쿼리문을 XML 혹은 어노테이션으로 관리하면서 자바 객체와 데이터베이스 사이의 매핑을 쉽게 도와주는 도구이다. Mybatis의 동작 원리를 단계적으로 살펴보자. 1. 설정 파일 로딩 Mybatis는 mybatis-config.xml 설정 파일을 통해 시작된다. 이 파일에서 데이터베이스 연결 정보, 트랜잭션 관리 방식, 매퍼 파일 위치 등을 설정할 수 있다. 설정 파일을 읽어들여 SqlSessionFactory를 생성하는 건데, 이 객체는 세션을 생성하는 공장 역할을 한다. 이 과정에서 Mybatis는 설정 파일의 정보를 기반으로 내부적으로 필요한 준비를 마친다고 볼 수 있다. 2. SqlS..
public String doSometing( @RequestParam("가져올 데이터의 이름") [데이터타입] [가져온데이터를 담을 변수], Model model) 위와 같은 형식으로 사용하는데 @RequestParam 어노테이션은 servlet에서 HttpServletRequest 객체와 같은 역할을 수행한다. 아래는 예시코드이다. 1 2 3 4 @RequestMapping(value = "/read", method = RequestMethod.GET) public void read(@RequestParam("bno") int bno, Model model) throws Exception { model.addAttribute(service.read(bno)); } Colored by Color Scr..
스프링MVC에서 MyBatis를 XML로 사용하여 DAO를 작성하고 Junit으로 테스트하는 과정에서 Spring - An illegal reflective access operation has occurred Illegal reflective access by org.apache.ibatis.reflection.Reflector 이러한 경고메시지를 만나게 되었다. error는 아니기 때문에 해당 테스트는 문제없이 수행되었지만 그래도 WARNING이 뜨니까 불편했는데 해결방법은 간단했다. Mybatis 라이브러리 버전을 업데이트해주면 되는 것이다.
스프링 MVC의 장점 중 하나는 최근 프로그래밍에서 많이 사용되는 JSON(JavaScripte Object Noation) 데이터에 대한 처리를 너무나 간단하게 처리할 수 있다는 것이다. 이를 위해서는 pom.xml을 사용해 Jackson-databind 라이브러리를 추가해야한다. pom.xml 1 2 3 4 5 6 com.fasterxml.jackson.core jackson-databind 2.13.0 Colored by Color Scripter cs 위와 같이 Jackson-databind를 추가해주고 VO, DTO 객체들을 반환해줄 떄 @ResponseBody 어노테이션을 사용하기만 하면 JSON 처리가 끝나는 정말 간편하다는 장점을 가진다. EX) Code 1 2 3 4 5 6 7 8 9 1..