보라코딩
코드로 배우는 스프링 웹 프로젝트 Part3 본문
프로젝트 생성 및 준비
•Spring Legacy Project의 생성
•pom.xml에서 스프링 버전 변경
•spring-test,spring-jdbc,spring-tx 추가
•junit버전 변경
•Servlet 버전 변경
•HikariCP, MyBatis, mybatis-spring, Log4jdbc 추가
•JDBC드라이버 프로젝트내 추가
•기타 Lombok의 설정 등
1. ex02로 자바 레거시 프로젝트 생성 (프로젝트 이름은 org.zerock.controller)
2. pom.xml가서 스프링버전 5.2.7로 jdk는 1.8로 변경 후 저장하고 업데이트
3. spring-test,spring-jdbc,spring-tx 추가
<!-- db연결 관련 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
오라클 추가
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
** 혹시 에러가 난다면 메이븐 업데이트 해보기!
4. pom.xml에서 junit 4.12로 변경, servlet 4.0.1 변경
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
5. HikariCP, MyBatis, mybatis-spring, Log4jdbc 추가
<!-- HikariCP 추가 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
6. JDBC드라이버 프로젝트내 추가
log4jdbc.log4j3.properties 파일 붙여넣기
내용은
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
7. root-context.xml 파일에 히카리 관련 내용 붙여넣기
<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName"
value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl"
value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="book_ex"></property>
<property name="password" value="book_ex"></property>
</bean>
<!-- HikariCP configuration -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
destroy-method="close"><constructor-arg ref="hikariConfig" />
</bean>
실행해보고
다음 같은 폴더에 붙여넣고 실행하고 (이런 습관이 좋다!)
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>
<mybatis-spring:scan base-package="org.zerock.mapper"/>
root-context.xml 에서 아래 namespaces에서 mybatis-spring, context 체크
8. 기타 Lombok의 설정 등
: 롬복 dependency 추가
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
: 버전 1.2.17로 변경하고 아래 내용 지우기
mapper 테스트해주기 위해
패키지만들고 TimeMapper interface 만든다.
인터페이스 내용은 아래와 같이 작성한다.
package org.zerock.mapper;
import org.apache.ibatis.annotations.Select;
public interface TimeMapper {
@Select("select sysdate from dual")
String getTime();
}
테스트해주기 위해 테스트 내에 폴더 생성하고 클래스 생성
클래스 내용은
package org.zerock.mapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class TimeMapperTests {
@Autowired
private TimeMapper timeMapper;
@Test
public void testGetTime() {
log.info("testGetTime...");
log.info(timeMapper.getTime());
}
}
sqldeveloper.exe 통해서 오라클 접속
접속시 로그인 해줘야 함 (비밀번호는 oracle로 쉽게)
boox_ex에 테이블 생성 (아래와 같이 입력)
더미데이터 입력을 위해 아래 추가
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval, '제목 테스트', '내용 테스트', 'user00');
select * from tbl_board order by bno desc;
F5누르면 스크립트 출력창 나옴
ctrl + enter 누르면 저장
commit도 꼭 눌러주기
'코딩 > Spring' 카테고리의 다른 글
코드로 배우는 스프링 웹 프로젝트 Part3 (ch9) (0) | 2023.02.05 |
---|---|
코드로 배우는 스프링 웹 프로젝트 Part3 (ch8) (0) | 2023.02.05 |
코드로 배우는 스프링 웹 프로젝트 Part2 (1) | 2023.01.29 |
코드로 배우는 스프링 웹 프로젝트 Part2 (0) | 2023.01.29 |
코드로 배우는 스프링 웹 프로젝트 Part1 (0) | 2023.01.24 |