전체 글 썸네일형 리스트형 연관 관계 테이블 연관관계MEMBER 테이블에는 MEMBER_ID(PK)가 있고 TEAM_ID(FK)가 있다(N)TEAM 테이블에는 TEAM_ID(PK)를 갖고 서로 조인한다(1)객체를 테이블에 맞춰서 모델링하면 협력 관계를 만들 수 없다.1. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다.2. 객체는 참조를 사용해서 연관된 객체를 찾는다.3. 테이블과 객체 사이에는 이런 큰 간격이 있다.단방향 연관관계@Entitypublic class Member { @Id @GeneratedValue @Column private Long id; @ManyToOne // Member : N, Team : 1 @JoinColumn(name = "TEAM_ID") // TEAM_ID를 사용해서 조인 priva.. 더보기 fetch 와 ResponseEntity<?> @ResponseBody@GetMapping("/nowPlaying")public ResponseEntity> getListOfNowPlaying(Model model) { List list = movieService.getListOfNowPlaying(); if(list == null || list.isEmpty()) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body("데이터가 없습니다."); } return ResponseEntity.ok(list); // 200 OK}List를 반환하려는데 예외 상황에서 보내는 메시지는 String 타입이므로 에러가 발생했습니다.@ResponseBody@GetMapping("/n.. 더보기 DTO 활용 예제 /** * 로그인 * @param user */ @PostMapping(value= "/login") public String login(UserVO user, Model model, BindingResult result, HttpSession session) { UserVO loginUser = userService.getUser(user, model, result); // 로그인 성공 시 세션에 사용자 정보 저장 session.setAttribute("user", loginUser); session.setAttribute("userId", loginUser.getId()); session.setAttribu.. 더보기 5-6. JPA 스프링 연동 기존 BoardWeb 을 JPA 프로젝트로 변환합니다.Project Facet 을 통해 프로젝트가 JPA 프로젝트로 변경이 됐다면persistence.xml 파일이 자동으로 생성됩니다.BoardWeb 프로젝트가 JPA 프로젝트로 변경된 후,pom.xml 파일을 수정해여 Spring ORM 라이브러리와 하이버네이트 라이브러리를 내려받습니다. org.hibernate hibernate-entitymanager 5.5.7.Final org.springframework spring-orm ${org.springframework-version} JPA 프로젝트는 반드시 영속성 유닛 설정 정보가 저장된 persistenc.. 더보기 5-5. JPA 환경설정 대부분 프레임워크는 실행에 필요한 환경설정 정보를 XML 파일로 처리합니다.JPA도 VO 객체와 테이블을 매핑하기 위한 설정 정보를 persistence.xml 파일에 저장하여 사용합니다. 를 루트 엘리먼트로 사용하며, 영속성 유닛(persistence-unit)과 관련된 다양한 정보가 설정됩니다.영속성 유닛(Persistence Unit) 설정영속성 유닛은 연동할 데이터베이스당 하나씩 등록하며, 영속성 유닛에 설정된 이름은 나중에 DAO 클래스를 구현할 때 EntityManagerFactory 객체 생성에 사용됩니다.JPA 를 이용하여 DB 연동을 구현하려면 EntityManager 객체가 필요합니다.그런데 EntityManager 를 얻으려면 EntityManager 객체를 생성하기 위한 공장 기능의.. 더보기 5-4. JPA 개념 대부분의 프로그램은 사용자가 입력한 데이터나 비즈니스 로직 수행 결과로 얻은 데이터를 재사용할 수 있도록 데이터베이스에 저장합니다.하지만 자바의 객체와 DB 테이블이 정확하게 일치하지 않습니다.둘 사이를 매핑하기 위해 SQL 구문과 자바 코드가 필요할 수 밖에 없습니다.ORM(Object-Relation Mapping)은 이렇게 정확하게 일치하지 않는 자바 객체와 테이블 사이를 매핑해줍니다.다시 말하면 ORM은 자바 객체에 저장된 데이터를 테이블의 Row 정보로 저장하고,반대로 테이블에 저장된 Row 정보를 자바 객체로 매핑해줍니다.이 과정에서 사용되는 SQL 구문과 자바 코드는 ORM 프레임워크가 자동으로 만들어줍니다.지금까지 스프링 JDBC나 Mybatis를 이용하여 자바 객체와 테이블을 매핑해왔습니.. 더보기 5-3. 스프링과 MyBatis 연동 Mybatis 프레임워크는 Ibatis와 유사합니다.지금부터 진행하는 실습은 이전 시간에 사용했던 MybatisProject가 아닌 BoardWeb 프로젝트에서 진행하며스프링과 MyBatis 연동 부분을 살펴보겠습니다.라이브러리 내려받기스프링은 MyBatis 연동에 필요한 API 를 제공하지 않아 MyBatis에서 제공하는 클래스들을 이용해서 연동합니다.pom.xml 에 다음 내용을 입력해 dependency를 추가합니다. org.mybatis mybatis 3.3.1 org.mybatis mybatis-spring 1.2.4mybatis-3.3.1.jar는 순수 마이바티스 관련 라이브러리며,mybatis-spring-1.2.4.jar 파일은 마이바티스와 스프링 연동 라이.. 더보기 5-2. Mapper XML 파일 설정 SQL Mapper XML 기본 설정마이바티스는 메인 환경 설정 파일인 SqlMapConfig.xml 를 읽어특정 DBMS의 커넥션을 맺을지, 어떤 SQL Mapper XML 파일들이 등록되어 있는지 알 수 있습니다.Mybatis 는 SqlMap.xml 파일에 등록된 각 SQL 명령어들을 Map 구조로 저장하여 관리합니다.각 SQL 명령어는 고유한 아이디 값을 가지고 있으므로 특정 아이디로 등록된 SQL을 실행할 수 있습니다.그리고 SQL이 실행될 때 필요한 값들은 input 형태의 데이터로 할당하고,실행된 SQL이 SELECT 구문일 때는 output 형태의 데이터로 리턴합니다.마이바티스 프레임워크에서 가장 중요한 파일은 SQL 명령어들이 저장된 SQL Mapper XML 파일입니다.Mapper는 를 .. 더보기 이전 1 2 3 4 ··· 25 다음