본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

Spring 사전 준비52

[JPA] EntityManager / persistence.xml 이번 포스팅에서는 실제로 JPA를 이용하여 간단한 트랜잭션 체계를 만들어볼 것이다. 1. EntityManager와 EntityManagerFactory 예제에 들어가기 전에 알아둬야 할 클래스들이다. 1) EntityManager (1) 역할 - Entity의 생명 주기와 트랜잭션 등을 관리하며, 영속성 컨텍스트에 접근하는 객체다. - 가급적 쓰레드 간에 공유해서는 안되고(동시성 문제), 사용하고 나면 바로 버려야 함 - 컨테이너가 관리하는 EntityManager(JavaEE와 서버 필요)와 애플리케이션이 관리하는 EntitiyManager(JavaEE와 JavaSE에서 모두 사용 가능)로 나뉨 (2) 메소드 find(Class entityClass, Object primaryKey) - SELECT.. 2021. 8. 16.
[JPA] Entity Annotations ※ JPA 어노테이션들은 javax.persistence 패키지에 있다. 1. @Entity 1) 설명 : DB랑 매핑하는 클래스 2) 속성 - name 속성으로 JPA에서 사용할 엔티티 이름을 지정할 수 있으며, 생략하면 클래스 이름을 사용한다. 다른 패키지에 이름이 같은 엔티티 클래스가 있을 때 충돌을 막기 위해 사용할 수 있다. 3) 주의 사항 - 생성자는 필수로 있어야 한다. 자바에서는 생성자를 따로 직접 만들지 않았다면 기본 생성자를 자동으로 만들어준다. - final, enum, interface, inner 클래스에는 사용할 수 없다. - 필드에 final을 사용할 수 없다. 2. @Table 1) 설명 : 엔티티 클래스에 매핑할 테이블 정보를 설정 2) 속성 (1) name : 매핑할 테이.. 2021. 8. 16.
[JPA] JPA 소개 및 프로젝트 준비 1. ORM, JPA, Hibernate란? 이 셋을 묶어서 설명하는 것이 가장 효율적일 것 같다. ORM(Object Relational Mapping) : 객체와 관계형 데이터베이스(RDB)를 매핑시켜주는 프레임워크 JPA(Java Persistent API) : Java 진영의 ORM 기술 표준 Hibernate : JPA를 구현한 ORM 프레임워크들 중 하나 ※ JPA는 표준이기 때문에 다른 구현 기술(H2, Oracle, MySQL 등)로 손쉽게 변경할 수 있다. 2. JPA의 장단점 1) 장점 (1) 높은 생산성, 편한 유지보수 - 객체와 관계형 데이터베이스의 패러다임 불일치 문제를 해결 ※ 상속관계(객체-상속, 테이블-슈퍼/서브 타입), 연관관계(객체-참조, 테이블-외래키), 객체 동일성 비.. 2021. 8. 14.
[JSP Servlet] 게시판 설계 준비과정 1. 구성 요소 MVC MODEL 2, FrontController - Command 패턴을 이용한다. ※ MVC MODEL 2 설명 - 2. MVC 패턴의 종류 - 2) 모델2 kimcoder.tistory.com/188 [JSP Servlet] MVC란? / JSP 문서 작성법 * DAO : 데이터 접근 객체 * 모듈화 : 작업을 작은 단위로 나누는 것, 부품화 1. MVC란? MVC -> Model, View(JSP), Controller(Servlet) Model은 데이터베이스와의 관계를 담당한다. 사용자가 Controller에게 요청.. kimcoder.tistory.com ※ FrontController - Command 패턴 설명 kimcoder.tistory.com/222 [JSP Serv.. 2020. 12. 16.
[JSP Servlet] FrontController - Command 패턴 / 포워딩 * Directory pattern : /name * 확장자 pattern : /name.확장자 * 위 두 패턴은 처리하는 서블릿 파일이 다르다. 이미지 출처 - www.javatpoint.com/front-controller-pattern 1. FrontController 패턴 클라이언트의 요청들을 한곳에서 처리하여 효율성을 높이는 패턴. 컨트롤러의 앞에 두며 중복 코드를 제거하는데 좋음. 위에서 설명한 확장자 패턴을 이용하면 되는데, 서블릿 파일에서 @WebServlet 어노테이션에 "*.확장자" 를 적용하여 어떤 파일이든 해당 확장자 패턴으로 접속하면 이 서블릿 파일에서 처리를 하는 것이다. @WebServlet("*.확장자") 2. Command 패턴 어떤 파일이든 확장자 서블릿에서 처리를 한다고.. 2020. 12. 14.
[JSP Servlet] EL / JSTL 1. EL EL이란 모델 오브젝트를 뷰에서 출력할 때 JSP의 출력 문법을 대체하는 간결한 표현 언어로, 단순히 모델의 내용을 출력할 때 쓰인다. 산술, 관계, 조건, 논리 연산자 모두 사용 가능하다. 1) 일반적인 값 출력 JSP 표현식 : EL : ${값} 2) 모델 오브젝트의 프로퍼티 값 출력 예시 JSP 표현식 : EL : ${member.id} 3) EL의 내장 객체 Scope객체로 page/request/session/application 4가지가 있다. - 주는 쪽 - application.setAttribute(name,value) session.setAttribute(name,value) pageContext.setAttribute(name,value) request.setAttribut.. 2020. 12. 14.
[JSP Servlet] 서버에 파일 업로드하고 확인하기 1. 설치 웹상에서 파일을 업로드 하는 기능을 구현하기 위해 라이브러리를 설치 해야 한다. 다운로드를 하기 위해 해당 사이트에 들어가자 servlets.com/cos/ Servlets.com | com.oreilly.servlet servlets.com 밑에 조금 내려보면 Download 가 있을 텐데, 여기서 zip 파일을 다운 받아주면 된다. 그리고 적당한 위치에 압축을 풀어주고, 그 후 생성된 폴더의 lib 하위 디렉토리에 cos.jar 이 있을 것이다. 이를 복사해서, 여러분들의 프로젝트의 WebContent/WEB-INF/lib 에 넣어주면 된다. 2. 업로드 파일을 저장할 폴더 생성 프로젝트 폴더의 WebContent 안에서 "uploadedFiles" 라는 폴더를 직접 생성해주었다. 이렇게 .. 2020. 12. 6.
[JSP Servlet] 데이터베이스(2) - DTO/DAO/ConnectionPool 1. DAO와 DTO DAO : Data Access Object, 데이터베이스의 데이터에 접근을 하기 위한 오브젝트로, 유지보수에 좋음 DTO : Data Transfer Object, 데이터 베이스에서 데이터 교환을 위한 javabean들을 의미한다. getter, setter 메소드로 구성된다. 아래 코드는 저번 포스팅에 사용했던 코드를 그대로 가져온 것이며, DAO/DTO 클래스 없이 데이터베이스와 연동하는 코드이다. 이제 위의 코드를 DAO/DTO로 나눠서 처리하도록 바꿔볼 것이다. 2020. 12. 3.
[JSP Servlet] 예외 페이지 / javabean / JDBC 기초 1. 예외 페이지 보기 좋지 않은 에러 페이지를 대체 하는 페이지 예외 페이지를 설정하는 방법 2가지를 소개한다. 1) 방법1 : page 지시자 예외가 발생할 만한 페이지에 page 지시자를 이용하여 다음과 같이 작성한다. 그리고 대체한 예외 페이지에는 다음과 같이 작성한다. * 200은 정상적인 페이지를 의미하는 응답코드이다. * 예외 페이지로 넘어가도 URL은 바뀌지 않는다. * isErrorPage를 true로 작성하면 exception 객체를 참조할 수 있으며, 다음과 같이 작성하면 에러 메세지를 확인할 수 있다. 2) 방법2 : web.xml 이렇게 에러 코드마다 이동할 예외 페이지를 지정할 수도 있다. 404 /예외페이지경로 500 /예외페이지경로 2. javabean 파라미터가 없는 def.. 2020. 12. 2.