JSP/Servlet - JSTL, Maven, lombok, 세팅 및 적용방법

songmin jeon·2024년 1월 9일
0
post-thumbnail

1. POM.xml에 Maven 적용방법


1.1. 다이나믹 프로젝트로 maven 적용하기

  1. 다이나믹 프로젝트 생성
  2. 해당 프로젝트 누르고 다음 선택

3.상단 id를 경로로 쓰기 ( com.smhrd )


1.2. 생성시 에러 발생하면


2. POM.xml에 Maven 적용방법

  1. 구글에 maven 검색
  2. jstl 검색
  1. 사용 많은 것 접속 > 1.2 버전

  2. 아래 Maven 코드 복사
    ( <dependencies 태그> 안쪽에 붙여넣기 해줘야함. </태그>)

  3. pom.xml에 붙여넣기

  1. 해당 프로젝트에 메이븐 추가확인


3. lombok 설치

  1. 구글에서 롬복 검색하여 페이지 방문

  2. 다운로드 및 현재 다운 버전 잘 기억해주기

  3. cmd에 다음과 같이 입력

  4. 입력하면 다음과 같은 창이 뜸

  5. 인설트 업데이트 클릭

  1. 완료됨 확인되면 창닫고, cmd도 닫음
  1. 경로 접속하여 최종확인.

  2. 라이브러리 추가 및 확인

3.1. lombok의 쓰임새

  • 어노테이션 사용으로 코드 수정 간편화
    예시) DTO 에서 Class의 기본 메소드(생성자, getter/setter) 자동완성
//lombok 라이브러리 : Class의 기본 메소드(생성자, getter/setter) 자동완성

@Data	// 기본메소드 자동완성(getter, setter, toString)
@AllArgsConstructor // 모든 필드를 초기화 하는 생성자 자동완성 
@NoArgsConstructor	// 기본생성자 : 기본생성자는 반드시 있어야 한다.

public class MemberDTO {

	// 반드시 테이블의 컬럼명과 필드 변수명이 같아야 한다.
	
	private String email;
	private String pw;
	private String tel;
	private String address;
  • 메소드를 만들지 않았음에도 자동으로 메소드가 등록되어 있다.

4. mybatis 세팅


4.1. DAO 클래스 하나 만들어주기

4.2. mybatis-config.xml 만들기

  • com.smhrd.database 패키지 위치

  • xml 내용 채우기

  • 구글에서 .mybatis 검색하여 홈페이지 방문

  • 시작하기 탭 선택(번역기 켜져있는 화면)

  • 해당 이미지의 범위만큼 복사

  • xml에 붙여넣기

  • 에러나면 다음과 같이 환경설정

4.3. xml 구문해석

<?xml version="1.0" encoding="UTF-8"?>

<!-- 1. xml에서 어떤 탸구룰 사용할 것인지 schema 기술 해줘야함 -->

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">
  
	<!-- 'mybatis 설정 파일이다' 를 알려주는 태그 -->
	<!-- dtd : document type definition -->
<configuration>

	<!-- 해당 프로젝트에서 사용하는 DB연결과 설정파일 전부 지정하는 공간 -->
  <environments default="development">
  <!-- environments : database가 여러개 사용될 수 있다. DB에 대한 정보들을 기술할 수 있눈 공간  -->
  
    <environment id="development">
    <!-- environment : DB 한개의 대한 정보를 기술하는 공간-->
      <transactionManager type="JDBC"/>
      <!-- transactionManager : 트랜젝션 관리, Connection pool 관리 -->
      <!-- Connection pool이란? : connection 이라는 객체를 생성하는데에 많은 자원 소비됨.
      				connection 객체를 미리 3~5개 정도 생성을하고 pool이라는 공간에서 관리
       -->
      
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

4.4. MemberMapper.xml 만들기

  • com.smhrd.database 패키지 위치
  1. MemberMapper.xml 생성

  2. xml에 코드 설정

  3. 해당 코드 복붙

  4. 코드 수정

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
  <!-- mapper
  	namespace란?
  	mapper 파일이 여러개일때, 해당하는 파일을 식별할 수 있는 식별자
  	이름을 정해줄때, 해당 mapper파일과 연결이 되는 DAO 쿨래스 이름을
  	일치 시켜주는 것을 원칙으로 함
   -->
<mapper namespace="com.smhrd.model.DAO">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
  1. mybatis-config.xml의 mapper 수정
  <mappers>
  	<!-- mapper 파일 만들고 꼭 수정하기! -->
    <mapper resource="com/smhrd/database/MemberMapper.xml"/>
  </mappers>
  1. SqlSessionManager. 클래스 생성
  • com.smhrd.database 패키지 위치

  1. 해당 내용 복사

  2. 클래스내 static { } 중괄호 안에 붙여 넣기

  3. 전체 임포트시 해당 것은 그림과 같이 선택

  4. String resource ="경로/mybatis-config.xml" 맞게 수정

  5. SqlSessionFactory 반환 메소드 생성

  6. 최종

package com.smhrd.database;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionManager {
	
	public static SqlSessionFactory sqlSessionFactory;
	
	static {
		String resource = "com/smhrd/database/mybatis-config.xml";
		InputStream inputStream;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	// sqlSessionFactory라는 객체를 리턴해주는 메소드
	// sqlSessionFactory == Connection POOL
	// sqlSession == Connection
	public static SqlSessionFactory getFactory() {
		return sqlSessionFactory;
	}

}

4.5. DAO 설정

  1. SqlSession을 가지고 올 수 있는 SqlSessionFactory 생성

SqlSessionFactory factory = SqlSessionManager.getFactory(); 추가

package com.smhrd.model;

import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.database.SqlSessionManager;

public class DAO {

	// 1) SqlSession을 가지고 올 수 있는 SqlSessionFactory 생성
	SqlSessionFactory factory =  SqlSessionManager.getFactory();
	
	public void join() {
	}
	

}
profile
제가 한 번 해보겠습니다.

0개의 댓글