반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 42000
- jsp
- 주소
- 크기조정
- API
- 카카오로그인
- 반복문
- id 개별 부여
- 다음주소API
- 변수
- 조건문
- 로그아웃
- restAPI
- 셀렉터
- 테이블 생성
- 별찍기
- 스타일 시트
- textarea
- 회원가입페이지
- 자바
- 없애기
- 인스턴스
- 변경
- openChallenge
- rest api
- 카카오 로그인
- 로그인
- span width 설정
- 유효성검사
- 연산자 우선순위
Archives
- Today
- Total
뚜벅이 한걸음
스프링 프레임워크 - mybatis 설정 본문
반응형
1. mybatis 가지고 오기
프로젝트의 pom.xml에
다음과 같은 설정을 추가해주고
<!-- 오라클 연동 -->
<!-- https://mvnrepository.com/artifact/com.oracle.ojdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<!-- Spring-jdbc -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Common-dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- DB MyBatis 연결시 필요 -->
<!-- MyBatis 3.4.1 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MyBatis-Spring -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
maven에서 잘 뜨는지 확인한다.
oracle db를 사용할것이기 때문에
상단에는 오라클의 jdbc도 넣어주었다.
나중에 mysql을 사용할때는 해당되는 드라이버 정보를 넣어주면 되겠지!
내 프로젝트의 web.xml을 보면
다음과 같이 작성이 되어있다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Processes application requests -->
<!--톰캣은 DS를 가장 먼저 읽어서 DS객체로 만들고 ioc 컨테이너는 DispatcherServlet 안에 있다. -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
이 중에서 여기를 보면
ioc 컨테이너에게 root-context.xml을 참고하라고 알려준다.
param-value 의 경로의
root-context.xml 문서를 보는 것이다.
<context-param><!-- dispatcherServlet이 봐야하는 설정이 어디있는지 알려줌 -->
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
2. root-context.xml
ioc 컨테이너가 참고할
root-context.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- db에 관련된 객체를 생성하는곳 dbconn역할 하는 bean-->
<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="system" />
<property name="password" value="1234" />
</bean>
<!-- dbSession 연결하고 끊어주는 역할 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/><!-- 위의 bean ref -->
<property name="configLocation" value="classpath:mybatis-config.xml"/><!-- mybatis 설정정보 위치 -->
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"/><!-- 쿼리정보를 가지고 있는 mapper의 위치 지정 -->
</bean>
<!-- executeQuery 역할-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /><!-- 매개변수 -->
</bean>
</beans>
3. servelt-context.xml
ioc 가 참고할 문서중에는 servlet-context.xml 도 있다.
servelt-context.xml 에 다음과 같이 작성해준다.
ioc컨테이너가 이 문서를 읽고 controller, service, dao 에 들려서 객체를 생성해야하므로
scan 태그를 이용해서 작성한다.
당연히 클래스들에는 @Controller 어노테이션이 달려있어야한다.
<!-- dispatcherServlet는 동작과 동시에 어노테이션이 잇는것들을 객체로만든다. -->
<context:component-scan base-package="edu.board.controller" />
<context:component-scan base-package="edu.board.service" />
<context:component-scan base-package="edu.board.dao" />
4. mybatis-config.xml
<?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">
<configuration>
<typeAliases>
<!-- mapper에서 사용할 vo의 별칭을 등록해두는 곳 -->
<typeAlias type="edu.board.vo.UserVO" alias="userVO"/>
</typeAliases>
</configuration>
mybatis-config.xml 문서에
<typeAlias type="edu.board.vo.UserVO" alias="userVO"/>
다음과 같은 태그로 별칭을 등록해준다.
반응형
'Spring' 카테고리의 다른 글
스프링 프레임워크 - Mapper (0) | 2022.07.11 |
---|---|
스프링 프레임워크 - 의존 주입(@어노테이션) (0) | 2022.07.11 |
스프링 프레임 워크 - 의존 주입 (0) | 2022.07.11 |
스프링 프레임 워크 - 의존성 주입(Dependency Injection) (0) | 2022.07.11 |
스프링 프레임워크 1 (0) | 2022.07.11 |