1. Dynamic Web Project 생성
우클릭 → New → Other 클릭
생성완료
2. WEB-INF/lib 폴더 안에 jar 붙여넣기
- jdbc 연결 jar ⇒ ojdbc6.jar
- Mybatis 관련 jar ⇒ mybatis-3.4.6.jar
- Logger 관련 jar
⇒ log4j-api-2-20.0.jar
⇒ log4j-core-2.20.0.jar
HTML관련 .jsp 파일 넣기
관련 파일 복사해서 WebContent 폴더에 붙혀넣기
2. Source 폴더 만들기
res 폴더 생성 or 복사하기
해당 폴더 우클릭 해서 일반 Folder → Source Folder 변경
- 일반 Folder 는 Java Resources 포함이 안되서 Source Folder로 변경 해야함
res Folder 에서 패키지 (config, mapper) 생성 후 .xml 파일 생성 or 붙여넣기
MyBatisUtil.java
package config;
import java.io.IOException;
import java.io.Reader;
import java.nio.charset.Charset;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* SqlSession
* @author sem
*
*/
public class MyBatisUtil {
private static SqlSessionFactory sessionFactory;
static {
try {
// 1-1. xml설정파일 읽어오기
Charset charset = Charset.forName("UTF-8"); // 한글처리를 위해
Resources.setCharset(charset);
Reader rd =
Resources.getResourceAsReader("config/mybatis-config.xml");
/// 1-2. Reader객체를 이용하여 SqlSessionFactory객체 생성하기
sessionFactory = new SqlSessionFactoryBuilder().build(rd);
// 1-3. Reader 닫기
rd.close();
}catch(IOException ex) {
ex.printStackTrace();
}
}
/**
* SqlSession객체를 제공하는 팩토리 메서드
* (기본값: autoCommit:false)
* @return SqlSession객체
*/
public static SqlSession getInstance() {
return sessionFactory.openSession();
}
/**
* SqlSession객체를 제공하는 팩토리 메서드
* @param autoCommit 오토커밋여부
* @return SqlSession객체
*/
public static SqlSession getInstance(boolean autoCommit) {
return sessionFactory.openSession(autoCommit);
}
}
db.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
username= pc15
password=java
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="config/db.properties" />
<settings>
<!-- 데이터 등록시 속성값이 존재하지 않으면 (즉, NULL)
부적합한 열유형 1111 예외 발생함. 이 경우 해당타입을 명시적으로 알려주던지
아래와 같이 NULL인 속성에 대하여 특정값으로 자동 설정이 가능함. -->
<setting name="jdbcTypeForNull" value="NULL"/>
<!-- DB 컬럼명을 낙타표기법으로 속성명과 자동 매핑 설정하기 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!-- <typeAlias type="vo.BoardVO" alias="boardVO"/> -->
</typeAliases>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="poolMaximumActiveConnections" value="2"/>
<property name="poolMaximumIdleConnections" value="2"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/member.xml"/>
</mappers>
</configuration>
member.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- <mapper namespace="memberTest"> -->
<mapper namespace="member">
<!--
이 영역에 sql문에 맞는 태그르 사용하여 SQL문을 기술
사용할 수 있는 기본적인 태그들
<select> ~~~</select>
<insert> ~~~</insert>
<update> ~~~</update>
<delete> ~~~</delete>
위 태그에서 사용되는 주요 속성들
1) id : 해당태그를 호출할 때 namespace 값과 연결하여 사용하는 id값
2) parameterType : 파라미터 객체의 타입정보를 지정
(보통VO클래스명, 자바의 데이터 타입등 사용된다. Alias명 사용가능)
3) resultType : select문을 실행한 결과값을 담을 객체타입을 지정한다
4) resultMap : 결과 레코드 컬럼명과 VO객체의 속성명이 다를 경우에 적절한 매핑을 위해 사용한다
-->
</mapper>
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<!-- 여기에 로거 추가 -->
<Logger name = "log4fexam.sql.Query" level = "trace" additivity = "false" >
<AppenderRef ref = "Console"/>
</Logger>
<Logger name = "log4fexam.sql.Parameter" level = "trace" additivity = "false">
<AppenderRef ref = "Console"/>
</Logger>
<Root level="trace">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
로깅할때 사용하는 코드들
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
private static final Logger SQL_LOGGER =
LogManager.getLogger("log4jexam.sql.Query");
private static final Logger PARAM_LOGGER =
LogManager.getLogger("log4jexam.sql.Parameter");
private static final Logger RESULT_LOGGER =
LogManager.getLogger(클래스이름.class);
RESULT_LOGGER.fatal(변수명);
'JAVA > Web' 카테고리의 다른 글
Request객체 (0) | 2024.03.10 |
---|---|
경로 , jsp 파라매터값 전송 (0) | 2024.03.10 |
JSP프로젝트 생성하고 배포하기 (0) | 2024.03.10 |
Server Configured 설정 방법 (0) | 2024.02.23 |
Plogging 사용법 (0) | 2024.02.20 |