Spring Legacy · STS · OracleDB · SQLDeveloper
0. 새로운프로젝트를만든다
1. pom.xml에서 필요한 의존객체 <dependency>를 추가한다 (dependency, properties 확인)
2. DB에 human 테이블을 만든다.
3. human테이블 데이터를 담을수있는 DTO를만든다
4. 데이터베이스조작을위한 DAO를만든다
5. mapper파일과 config파일 생성
6. root-context.xml에 설정파일 3개를 추가한다.
그후 Controller와 Service, jsp를 작성을 통해 데이터를 출력한다.
0. 새로운 프로젝트를 만든다
프로젝트생성 방법 링크 : https://rebornbb.tistory.com/entry/Spring-Spring-Legacy%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0
1. pom.xml에 필요한 의존객체 <dependency> 추가
이때 <properties>안의 java-version을 확인해서 1.8로 넣어주어야한다.
Porm.xml - 스프링 - 메이븐
어플리케이션프로퍼티 - 스프링부트 - 그레이들
2. DB에 human테이블을 만든다
DB실행 방법 링크 : https://rebornbb.tistory.com/entry/Spring-Oracle-DB-SQL-Developer-%EC%84%A4%EC%B9%98-%ED%9B%84-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0
3. human테이블 데이터를 담을수있는 DTO를만든다
+롬북은 버그가많아서 호불호가갈린다.
+오른쪽클릭 > source 를 클릭하면 여러가지 사용할수있다 getter Setter ... 등등
4. 데이터베이스조작을위한 DAO를만든다
dao 에서는 구현부가 없는 것을 확인할수있다.
자 이제 src/main/resources > mappers > humanMapper.xml을 확인해보자. (아래이미지확인)
5. mapper파일과 config파일 생성
Mapper.xml은 dao에서 구현되지않은 쿼리문을 작성해준다.
selectAll, selectName은 humanDTO를 선택하여 찾는 구문으로 원래는 resultType에 풀경로를 써줘야하나,
src/main/resources > mybatis-config.xml에 package name을 적어두어 풀경로를 적지않아도 된다.
6. root-context.xml에 설정파일 3개를 추가한다.
첫번째 bean은 오라클 연결할 것이고, 그것이 현재 컴퓨터에 있다는 것, 아이디 비밀번호를 정보를 전달하고
두번째 bean은 바로 위의 DB정보인 dataSource 와 mapper와 config파일 위치등의 정보를 전달한다.
세번째는 위에 정의된 두개의 정보들을 다 가지고 DAO의 정의된 함수들을 가지고 mapper에있는 것을 실행한다.
즉 3개의 bean파일은 실제 DB와 연결을 위해 작성해야 하는 것이다.
위 내용에선 DTO, DAO, mapper 생성과 db연결 설정 등에 대해 정리하였다.
다음 포스팅에는 Service와 Controller, View파일 생성으로 데이터를 화면으로 출력하는 것을 다뤄 볼 것 이다.
아래 내용은 다음에 다룰 내용에 대한 맛보기 정리이다.
DAO - DB작업만 이루어짐
SERVICE - DB작업 과 DB와 관련없는 작업 등 필요한 메서드를 다 만드는 곳
service 사용을 위해 root-context.xml 수정하기
아래 코드 하단에 추가하기
<context:component-scan base-package="com.human.service"></context:component-scan>
root-context > Namespace > context 체크
<?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 https://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">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
name="dataSource">
<property value="oracle.jdbc.driver.OracleDriver" name="driverClassName"/>
<property value="jdbc:oracle:thin:@localhost:1521:xe" name="url"/>
<property value="c##human" name="username"/>
<property value="human" name="password"/>
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations"
value="classpath:mappers/**/*Mapper.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory"
ref="sqlSessionFactory"></constructor-arg>
</bean>
<context:component-scan base-package="com.human.service"></context:component-scan>
</beans>
ServiceImpl.java에 SqlSession 주입
서비스는 root.context.xml에 만들어진 자바객체 SqlSession 을 주입한다
@Autowired = 주입
Controller.java 에서 DB작업 후 ArrayList로 리턴
jsp 파일에 받은 ArrayList를 forEach문으로 꺼내 출력한다.
자 전체적인 흐름 순서를 다시 한번 확인해보자.
- pom.xml 데이터베이스 설정
- DB담을 DTO 생성
- DB작업할 DAO 생성
- DAO에서 사용할 mapper (Mapper.xml과 mybatis-config.xml) 생성
- root-context.xml 에 실제 DB에 연결하는 작업
- Service (비즈니스로직) 실제 실행되는 프로그램을 만든다 DAO 호출
- 최종적으로 사용자가 요청하면 Controller에서 서비스를 호출해서 출력한다
+파일삭제할때 주의할점!
체크해주지않으면 이름중복시 생성이안되는 오류가 생길 수있다.
'STUDY > SpringLegacy' 카테고리의 다른 글
[Spring] 게시판 만들기 총정리 (게시글 등록·확인·삭제·수정) (0) | 2022.09.19 |
---|---|
[Spring] 글 목록·상세 출력 / 입력·등록·삭제·수정 만들기 (0) | 2022.09.17 |
[JSP] JSTL · EL 설명 예제 (0) | 2022.09.16 |
[Spring] Spring 기초 어노테이션 다루기 (0) | 2022.09.14 |
[Spring] Controller 생성하기 (0) | 2022.09.14 |