service db에 데이터 넣기 등

이태규·2022년 2월 28일
0

spring

목록 보기
5/64

서비스 또는 저장소라고 부른다.
DB와 연동하는 부분 구현하는 설계 부분

  1. pom.xml파일에 몽고 db 사용 dependency를 추가한다.

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-mongodb</artifactId>
		</dependency>
  1. application.properties 파일에 설정하기


# db 연동
spring.data.mongodb.uri=mongodb://id202:pw202@1.234.5.158:37017/db202
spring.data.mongodb.database=db202

MemberDB.java

@Service
public interface MemberDB {

    // 추가할 내용을 member로 주면 추가한 후에
    // 실제 추가된 내용을 반환
    public Member insertMember(Member member);

}
  1. MemberDBImpl.java 설계 부분에 @Autowired하기

private 붙인다.

@Service
public class MemberDBImpl implements MemberDB {

    

    // 환경설정으로 생성된 객체를 가져옴
    @Autowired
  	private MongoTemplate mongodb;

    @Override
    public Member insertMember(Member member) {
        try {
            return mongodb.insert(member);
            // T는 내가 만든 타입으로 만들어라
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

    }

}

기존 자바에서는 생성자에서 db연동을 했었음.
스프링에서는 application.properties에 이미 연동 되어있음.
연동 된 정보만 불러오면 됨.
불러오는 방법은 @Autowired를 쓴다.

다음과 같이 불러오면 T라는 걸 볼 수 있는데, 여기서 T는
내가 만든 타입으로 만들어라는 것임. 리턴 값 또한 T이기 때문에 바로 리턴

MemberController.java

public class MemberController {

    @Autowired
    private MemberDB memberDB;

    @PostMapping(value = { "/insert" })
        public String insertPOST(
                @ModelAttribute Member mem) {
            
            System.out.println(mem.toString());
            memberDB.insertMember(mem);

            return "redirect:/member/insert";
            
        }
}

@Autowired를 통해 memberDB를 불러온다.

원래 자바에서는 MemberDB db = new MemberDBImpl()이렇게 불러왔었음.

profile
한 걸음씩 나아가자

0개의 댓글