Eclipse와 Project 설명하는 방법은 https://rlog0918.tistory.com/152 이곳을 참고하고,
사용할 라이브러리를 다운로드 받아 적용하는 방법은 https://rlog0918.tistory.com/153 이곳을 참고한다.
사용할 라이브러리들을 MVN Repository에서 다운로드 받아 lib에 넣어주었다.
- mysql-connector-java 8.0.28.jar
- jstl-1.2.jar
- log4j-api-2.18.0.jar
- log4j-core-2.18.0.jar
- log4j-slf4j-impl-2.18.0.jar
- log4j-web-2.18.0.jar
- slf4j-api-1.7.36.jar
- mybatis-3.5.10.jar
일단 xml들을 먼저 다루고자 결정했고, 가장 먼저 Web.xml을 설정해주었다.
크게 이유가 있는 것은 아니고, 가장 먼저 생성되어 있는 xml이기 때문에 먼저 설정해 주었다.
Web.xml에 기본으로 적혀있던 코드중에서 메인으로 사용될 index.jsp만 남겨두었고,
초기화 매개변수로 log4j2와 utf-8을 설정했다.
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>_basicWeb_JSP</display-name>
<welcome-file-list> <!-- main home 화면이 될 jsp -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 초기화 매개변수 => 전체에서 사용되는 설정 정보를 정의할 수 있음 -->
<context-param> <!-- log 사용하려고 -->
<param-name>log4j2Config</param-name>
<param-value>/WEB-INF/log4j2.xml</param-value>
</context-param>
<context-param> <!-- 문자 인코딩 설정 -->
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</context-param>
</web-app>
log4j2Config의 value가 WEB-INF 하위에 log4j2.xml로 생성되어 있다고 해두었으니
해당 위치에 log4j2.xml 명칭으로 xml 파일을 만들어 준다.
log4j2에서 log를 Console로 출력할 수 있도록 한다.
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<!-- 로그를 어디에 출력할건지 정의 -->
<Appenders>
<Console name="Console" target="SYSTEM_OUT"> <!-- 콘솔에 출력 -->
<PatternLayout parttern="%d - %msg%n" /> <!-- parttern는 날짜와 msg를 출력할거라는 것을 보여준다 -->
</Console>
</Appenders>
<!-- 로그를 어떻게 처리할건지 정의 -->
<Loggers>
<Root level="INFO"> <!-- 가장 상위 수준의 logger -->
<AppenderRef ref="Console"></AppenderRef> <!-- console Appender를 사용해서 로그 출력 -->
</Root>
</Loggers>
</Configuration>
DB 연동을 위해서 src/main/java에 package로 orm을 생성해주었고 MybatisConfig.xml 파일을 만들었다.
그 후 구글에 Mybatis 라고 검색해서 필요한 소스를 긁어왔다.
내가 참고한 사이트는 https://mybatis.org/mybatis-3/ko/getting-started.html 이다.
<dataSource>안의 <property> 부분들은 본인 DB와 DB 계정에 알맞게 써주면 된다.
MybatisConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/> <!-- driver 설정 -->
<property name="url" value="${url}"/> <!-- url 설정 -->
<property name="username" value="${username}"/> <!-- db 계정 id -->
<property name="password" value="${password}"/> <!-- db 계정 password -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/> <!-- 본인이 사용할 mapper로 변경 -->
</mappers>
</configuration>
Mybatis를 사용해서 DB와 상호작용하기 위해 orm package에 DatabaseBuilder class를 생성해준다.
이 클래스는 프로그램이 시작할 때 한 번만 SqlSessionFactory를 초기화 하고,
이후에는 필요한 곳에서 해당 인스턴스를 사용해서 DB와 상호작용 할 수 있도록 한다.
DatabaseBuilder.java
package orm;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class DatabaseBuilder {
// Mybatis의 SqlSessionFactory 인스턴스
private static SqlSessionFactory factory;
// Mybatis 파일 경로
private static final String CONFIG = "orm/MybatisConfig.xml";
// 초기화 블럭을 사용하여 객체 생성 => 클래스가 로딩될 때 한 번만 생성
static {
try {
// MybatisConfig.xml 파일을 읽어와 SqlSessionFactory 생성
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(CONFIG));
} catch (Exception e) {
e.printStackTrace();
}
}
// 생성된 SqlSessionFactory를 return
// 이 method를 통해서 다른 클래스에서 db session을 얻을 수 있음
public static SqlSessionFactory getFactory() {
return factory;
}
}
기초 설정들이 제대로 되었는지 확인하기 위해서 webapp folder 하위에 index.jsp를 생성하여
화면에 Hello를 띄워보았다.
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Main</title>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
화면
에러 없이 기초 설정이 제대로 된 것을 확인 했으니,
다음은 회원가입을 만들어야겠다.
[JSP/Servlet] 1. 기초 설정
(다음 게시물 예고편)
[JSP/Servlet] 2. 회원가입
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!