MyBatis-2
MyBatis와 MVC 연결
- pom.xml에 라이브러리를 작성하고 다운로드했으면,ojdbc.jar와 Spring-mybatis를 연동하기 위한 .jar파일(mybatis-spring.jar, spring-jdbc.jar)들이 다운로드 되어있어야 한다.
- 이전까지 Mybatis를 자바에서만 활용했다면, 이제 Spring과 연결하여 DI, IOC, MVC를 함께 사용한다.
- Session연결은 이제 Spring에서 만들어 넘겨받아야하며, 권한은 스프링이 갖는다.
xml에 환경설정하기
연결 전에 config.xml에서 MyBatis 환경설정을 했다면, 이제 Spring이 연결정보를 만들고 객체를 넘겨준다. Session을 만들어주고 MyBatis가 사용할 db-config.xml파일과 mapping.xml파일의 경로를 남긴다.
-
mybatis_spring.xml
- 해당 파일의 위치는 해당 프로젝트의 사용 패키지 안에 위치
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 1.데이터소스(데이터연결con)설정 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /> <property name="username" value="jdbc" /> <property name="password" value="jdbc" /> </bean> <!-- 2.SqlSessionFactoryBean : db-config.xml, sql-mapping.xml board-mapping.xml member-mapping.xml xxx-mapping.xml --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:spring_mybatis/db-config.xml" /> <property name="mapperLocations" value="classpath:spring_mybatis/*-mapping.xml" /> </bean> <!-- 3.SqlSessionTemplate api : sqlSessionFactory 객체 생성자에 전달--> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> <!-- 4.@annotation :MAIN 사용--> <context:component-scan base-package="spring_mybatis" /> <!-- web.xml에추가 <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/root-context.xml, classpath:springioc_mybatis/mybatis_spring.xml </param-value> </context-param> servlet-context.xml에추가 <context:component-scan base-package="springioc_mybatis" /> --> </beans>
-
연결하기: 데이터베이스 연결 정보, 접속 계정 정보 입력 필수
-
Session 객체 생성: Location 값에 config.xml과 mapping.xml 경로 기입(필수)
-
패키지이름/xml이름으로 구성, 패키지 이름이 test.my.mvc일 경우 .은 /로 구분
ex) 패키지 이름 test.my.mvc > test/my/mvc
-
-
@annotation을 사용 할 패키지 이름
- 패키지명 그대로 작성해주면 된다. (test.my.mvc)
-
board-config.xml파일은 이제 연결정보는 필요 x , 기본 정보와 Alias설정 가능
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- mybatis db 연결정보 세팅 파일 --> <configuration> <typeAliases> <typeAlias type="test.my.mvc.BoardDTO" alias="board"/> </typeAliases> </configuration>
연결 완료, 이제 mvc에 Mybatis를 사용하면서 mvc의 API, annotation 사용 가능!
Session은 이제 객체를 생성할 필요가 없고, Spring IOC의 bean객체로 저장되어 있기 때문에 DI방식으로(@annotation)으로 생성해 사용한다.
MVC기능 | Mybatis 사용 가능 |
---|---|
@Controller @RequestMapping |
@Service @Repository @Component @Autowired @Qualifier |
- MyBatis와 MVC 구조