본문 바로가기

Spring

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는 를 .. 더보기
5-1. Mybatis 프레임워크 마이바티스 프레임워크는 한두 줄의 자바 코드로 DB 연동을 처리하며SQL 명령어를 자바 코드에서 분리하여 XML 파일에 따로 관리하는 특징이 있습니다.마이바티스 프로젝트 내에 BoardVO를 생성합니다.package com.springbook.biz.board;import java.sql.Date;public class BoardVO { private int seq; private String title; private String writer; private String content; private Date regDate; private int cnt; private String searchCondition; private String searchKeyword; public String getSear.. 더보기
4-7. JSON을 사용한 데이터 변환 지금까지 BOARD 테이블에 게시글을 저장하기 위해 BoardVO 객체를 사용했습니다.BoardVO 객체에 저장된 데이터를 JSON 데이터로 변환하면 BoardVO 객체가 가진 각 변수와 변수에 저장된 값이 '키:값' 형태로 표현됩니다.{ "seq";1, "title":"가입인사", "writer":"관리자", "content":"잘 부탁드립니다.", "regDate":2016-03-19, "cnt":0}검색 결과가 하나가 아닌 여러 개일 때는 다음과 같이 배열로 처리됩니다.[ { "seq";1, "title":"가입인사", "writer":"관리자", "content":"잘 부탁드립니다.", "regDate":2016-03-19, .. 더보기
4-6. 다국어 처리 원하는 언어로 메시지를 출력하려면 각 언어에 따른 메시지 파일을 작성해야 합니다.메시지 파일의 확장자는 '.properties' 이며, 파일명은 언어에 해당하는 Locale 정보를 결합하여 작성합니다.messageSource_en.properties#login.jspmessage.user.login.title=LOGINmessage.user.login.id=IDmessage.user.login.password=PASSWORDmessage.user.login.loginBtn=LOG-INmessage.user.login.language.en=Englishmessage.user.login.language.ko=Korean#getBoardList.jspmessage.board.list.mainTitle=BOAR.. 더보기