JSP&Servlet

[JSP]6. Maven&Mybatis

CodeJaram 2023. 6. 28. 08:15

[Maven]

1. Maven: 빌드 절차를 간소화하는 빌드도구(외부라이브러리 설치)

-build: 소스코드를 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정

및 결과물

-다수의 인원이 협력해서 개발하기 편리함(실제 파일이 없어도 사용가능)

-라이브러리 파일을 직접 추가하지 않아도 코드 사용으로 라이브러리 사용이 가능함

-하위라이브러리까지 자동으로 설치됨

 

2. maven project 만들기: new-other-maven 검색

 

filter: maven-archetype-webapp 검색

 

Group id(그룹 식별, 도메인 역순으로 작성): com_smhrd

Artfact id(프로젝트 식별):maven

 

 

3. superclass 상속: build path-other and export-체크 후 apply

 

4. pom.xml: maven 환경설정, 외부라이브러리 추가 시 사용함

 

1)maven.compiler 1.8로 수정

 

2)dependencies 태그: 외부라이브러리 관리하는 태그

 

5. 외부라이브러리 설치하기

외부 라이브러리 다운로드 사이트(Maven)

https://mvnrepository.com/

 

1)Servlet 라이브러리 설치: Java Servlet API(3.1.0) Maven 코드 복사

 

외부라이브러리 설치코드를 <dependencies>-</dependency> 태그 다음 줄에 추가-저장

2)라이브러리 설치 확인

index.jsp에서 ctrl+d한 후 다시 실행

 

3)URL Mapping 값 설정

● 모듈 버전 4.0 이상은 annotation 방식으로 URL Mapping

● 모듈 버전 4.0 이하는 web.xml에서 URL Mapping값 지정

현재 프로젝트 버전:2.3

 

-Servlet 파일에서 annotation 방식으로 매핑값을 지정하면 중복되므로 작성하지 않음

-mapping 값 변경: <url-pattern> 태그

(변경 전)

 

(변경 후)

변경결과

 

[Mybatis]

1. Mybatis: Java를 위한 SQL 문장을 Mapping해주는 Framework

-JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신 처리

-Java 코드와 SQL문장을 분리하여 생산성 향상, 유지 보수 편리

 

Mybatis 홈페이지: https://blog.mybatis.org/

 

The MyBatis Blog

A blog about the the MyBatis data mapper framework.

blog.mybatis.org

2. Mybatis 설치: Mybatis 홈페이지-Products-MyBatis3(3.4.6) Maven 코드 복사

 

 

*maven project update(변경사항 적용): 프로젝트-Maven-Update Project (Alt+F5)

-Force Update of Snapshots/Releases 체크-finish

 

4. Mybatis 환경설정: Mybatis 홈페이지-docs 페이지 참고

https://mybatis.org/mybatis-3/getting-started.html 

 

mybatis – MyBatis 3 | Getting started

It's very important to understand the various scopes and lifecycles classes we've discussed so far. Using them incorrectly can cause severe concurrency problems. Dependency Injection frameworks can create thread safe, transactional SqlSessions and mappers

mybatis.org

 

1)Installation: target 폴더의 pom.xml에서 mybatis 라이브러리 추가

 

2)Building SqlSessionFactory from XML

① mybatis-config.xml 파일

-Building SqlSessionFactory from XML에서 두번째 xml 코드 복사 붙여넣기

 

 

value에 바로 보안키를 작성하면 보안에 취약하므로 db.properties.file에 보안키 작성

 

② db.properties.file 파일: mybatis-config.xml에 있는 value값 작성

-띄어쓰기(공백), 주석x, Enter x, 실행할 코드 행(4행)까지만 존재해야 함

 

③ db.properties 파일을 config.xml에 연결: mybatis-config 파일에 코드작성

<configuration>태그 아래에 <properties> 태그 추가하여

resource=”db.properties 파일 경로”작성

 

 

④mapper.xml 파일을 config.xml에 연결: <mapper> 태그에 resource에 Mapper의

파일 경로로 변경

 

3)[Mapper.xml]만들기: SQL 쿼리문을 작성하는 XML 파일

● Exploring Mapped SQL Statements 코드 복사하여 붙여넣기

● <mapper> 태그의 namespace에 mapper.xml 파일 경로 작성

 

● namespace: mapper 안에 있는 id를 그룹화하는 기능

-id는 같은 mapper에서는 중복 불가, 다른 mapper에서는 중복 가능

-쿼리문 실행 시 정확한 id를 구별하기 위해 namespace 작성

-주로 mapper 파일의 경로를 작성

 

4)[sqlSessionManager.class] 파일 만들기: DB 연결하는 sqlSessionFactory 코드 작성

① static 메소드 만들기-try~catch문 작성하기

② Building SqlSessionFactory from XML의 첫번째 코드를 try문에 붙여넣기

 

③ resource에 mybatis-config 파일 경로 작성

 

④ DAO에서 SQLSession 사용할 수 있도록 get 메소드 생성하기

- sqlSessionFactory 전역변수로 만들기

 

● sqlSessionManager: sqlSessionFactory를 관리하는 클래스

-sqlSessionFactory: sqlSession이 여러 개 있는 객체

*sqlSession==Connection 객체와 같은 기능

 

-mybatic: DB 연결을 "미리" 진행하여 DB 자원 소모를 줄여 성능을 향상하려는 목적

-Connection 객체 사용하는 것이 가장 DB 자원 소모가 큼

-Connection pool을 통해 5개의 connection을 미리 만들어 connection을 빌리고

반납하는 방식으로 connection 객체를 재사용

 

● static 블록: 클래스가 로딩된 후 무조건 실행되는 블록

-메모리 영역: static,heap(참조형 데이터 타입 저장), stack(기본타입, 주소값, 지역변수

저장) 등

-static: 메모리에 한 번 할당되어 프로그램이 종료할 때 해제되는 메모리

-장점: static에 저장되면 모든 객체에서 공유가능

→다른 메소드나 변수도 static 타입이어야 사용가능함

-단점: 자주 사용하면 프로그램이 종료되기 전까지 메모리에 할당되기 때문에 시스템

메모리 낭비

 

'JSP&Servlet' 카테고리의 다른 글

[JSP]8. lombok  (0) 2023.06.30
[JSP]7. Mybatis 로 JDBC 구현하기  (0) 2023.06.29
[JSP]6. Maven&Mybatis  (0) 2023.06.27
[JSP]5. Scope  (0) 2023.06.26
[JSP]4. cookie&session  (0) 2023.06.23