mybatis3.xx

의존성 추가
implementation 'org.mybatis:mybatis:3.5.16'
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}"/>
<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>
바뀌지 않는 정적자원들 정의

안에 xml 설정 코드 추가해준다.

Mapper 클래스 xml
<?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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>

📌8.실무프로젝트 폴더 - exam01

해당 코드 살펴보기
SqlSessionFactory: SqlSession 객체 생성
SqlSessionFactory는 MyBatis의 SQL 세션을 생성하는 팩토리입니다. 이 팩토리는 MyBatis 설정 파일을 기반으로 생성되며, 설정 파일에는 데이터베이스 연결 정보, 트랜잭션 설정, 매퍼 파일 정보 등이 포함되어 있습니다.
SqlSessionFactoryBuilder -> 설정 -> SqlSessionFactory 객체 생성
SqlSession은 MyBatis의 주요 인터페이스 중 하나로, SQL 실행, 트랜잭션 관리, 매퍼 인터페이스 호출 등을 담당합니다. 데이터베이스와의 실제 상호작용을 관리하며, SQL 쿼리 실행 결과를 처리합니다.
SqlSession: SQL 구문 실행
getMapper(Class class)
매퍼 인터페이스
@Select()
@Insert()
@Update()
@Delete()
1) if
2) choose, when, otherwise
3) trim, where, set
<trim prefix="WHERE" prefixOverrides="AND |OR ">
...
</trim>
prefix="WHERE" : trim 태그 내부에 유효한 조건식이 하나라도 있으면 출력
prefixOverrides="AND |OR " : 가장 앞쪽에 나와있는 (WHERE 바로 뒤) AND 또는 OR제거
<trim prefix="SET" suffixOverrides=",">
...
</trim>
suffixOverrices="," -> 마지막 콤마는 제거
trim대신 where조건 가능

trim 대신 SET으로 가능

4) foreach
5) bind
USER_NM LIKE '키워드%': 사용자명이 키워드로 시작하는 패턴
USER_NM LIKE '%키워드': 사용자명이 키워드로 끝나는 패턴
USER_NM LIKE '%키워드%': 사용자명이 키워드가 포함되는 패턴
SLF4J
Slf4j-api: slf4j 가이드라인(인터페이스 위주)
logback-class: 대표적인 구현체
%d: 로그 기록 시점(날짜, 시간)
%p: 로그 레벨 %5p -> 5글자내에서 로그 레벨을 표기
%m: 로그 메시지
%n: 줄개행
%c: 패키지명을 포함한 전체 클래스명
- %c(2) -> 패키지명은 한자로 축약, 클래스명은 전체 이름
FATAL
ERROR
WARN - 경고(오류X, 문제 소지가 생길 가능성이 있는 경우)
INFO - 일반 정보
DEBUG - 자세한 정보
TRACE - DEBUG보다 더 자세한 정보