1. 의존성 설정 5개 설정 - 5개의 jar. 모두 mvnrepository.com에서 다운 가능
- ojdbc6_g.jar ( 오라클 드라이버 , 11g Express Edtion 버전, 버전 주의 )
- mybatis.jar ( mybatis 라이브러리 )
- 스프링에서 추가
spring-jdbc.jar
spring-mybatis.jar
commons-dbcp2.jar ( DBCP: DataBase Connection Pool, Apache 그룹에서 제공) - SpringBoot에서는 HikariCP 라이브러리가 기본이다.
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.jslsolucoes/ojdbc6 -->
<dependency>
<groupId>com.jslsolucoes</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
2. jdbc.properties 작성 및 등록 ( src/main/resources 폴더에 com.config 패키지 )
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.username=SCOTT
jdbc.password=TIGER
스프링의 configuration파일(xml)에 등록하기
반드시 root-context.xml에 등록한다.
<context:property-placeholder location="classpath:com/config/jdbc.properties"/>
3. jdbc.properties 등록된 4개의 정보를 이용해서 DB 연동하는 DataSource 설정
⇒ Apache 그룹에서 제공한 commons-dbcp2 라이브러리를 사용한다. ( HikariCP 라이브러리도 무관)
⇒ 반드시 root-context.xml에 등록한다.
⇒ commons-dbcp2라이브러리에 있는 DBCP 기능의 빈을 등록 ⇒ BasicDataSource
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
4. com.dto.DeptDTO 작성
5. DeptMapper.xml 작성 ( src/main/resources 폴더에 com.config 패키지 )
6. 이전 MyBatis에서 사용했던 SqlSessionFactory 역할의 빈을 등록 ⇒ SqlSessionFactoryBean
⇒ 반드시 root-context.xml에 등록한다.
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="xxx" />
<property name="mapperLocations">
<list>
<value>classpath:com/config/DeptMapper.xml</value>
</list>
</property>
<property name="typeAliases">
<list>
<value>com.dto.DeptDTO</value>
</list>
</property>
</bean>
별칭주기
@Alias("DeptDTO")
public class DeptDTO { }
7. 이전 MyBatis에서 사용했던 SqlSession 역할의 빈을 등록 ⇒ SqlSessionTemplate
⇒ setter 메서드가 제공안됨. 따라서 생성자로 주입해야 됨.
⇒ 반드시 root-context.xml에 등록한다.
<bean id="session" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sessionFactory" />
</bean>
8. DAO, Service , Controller 작성하고
xml에 DAO, Service, Controller 등록( Component-scan )
@Repository
public class DeptDAO {
}
@Service("deptService")
public class DeptServiceImpl implements DeptService {
}
@Controller
public class TestController{
}
<!-- DAO, Service 빈으로 등록 -->
반드시 servlet-context.xml에 등록한다.
<context:component-scan base-package="com.*" />
9. DAO에서 SqlSessionTemplate 주입받고 사용한다.
@Repository("dao")
public class DeptDAO {
@Autowired
SqlSessionTemplate session;
//목록보기
public List<DeptDTO> findAll(){
return session.selectList("DeptMapper.findAll");
}
10. 논리적이름을 작성했으니 servlet-context.xml에 InternalResourceViewResolver를 등록해야한다.
<!-- JSP 용 InternalResourceViewResolver 등록 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
11. jsp에서 JSTL 사용
이전 서블릿
WEB-INF
- lib
- *.jar
스프링
=> 자동으로 의존성이 설정되어 있음. (pom.xml에서 확인 가능)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
jsp 파일
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
'Framework > SPRING FRAMEWORK' 카테고리의 다른 글
MyBatis 연동 - INSERT (0) | 2023.09.18 |
---|---|
MyBatis 연동 - 트랜잭션 처리 (0) | 2023.09.18 |
JSP에서 리소스 접근 (Image, js, css) (0) | 2023.09.18 |
Interceptor (가로채기) (0) | 2023.09.18 |
로그아웃 (로그인체크확인) (0) | 2023.09.18 |