๊ด€๋ฆฌ ๋ฉ”๋‰ด

Coding Planet

Mybatis-confing.xml ๋œฏ์–ด๋ณด๊ธฐ ๋ณธ๋ฌธ

๐ŸŒฑSPRING

Mybatis-confing.xml ๋œฏ์–ด๋ณด๊ธฐ

jhj.sharon 2023. 5. 3. 17:19
๋ฐ˜์‘ํ˜•

 

 

1. Mybatis-confing.xml ์ „๋ฌธ

  • ์ด ํŒŒ์ผ์€ MyBatis ์‹คํ–‰ ์‹œ ํ•„์š”ํ•œ ์„ค์ • ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, MyBatis ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์„ค์ • ํŒŒ์ผ์ด๋‹ค.
  • MyBatis-config.xml ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ์†Œ์Šค ํด๋”์— ์œ„์น˜ํ•˜๋ฉฐ, MyBatis๊ฐ€ ์‹คํ–‰๋  ๋•Œ ํ•ด๋‹น ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ์ฝ์–ด์™€ ์„ค์ •์„ ๊ตฌ์„ฑํ•œ๋‹ค.
<?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>
	<!-- Mybatis ๊ด€๋ จ ์„ค์ • ์ž‘์„ฑํ•˜๊ธฐ * ์•„๋ž˜ ์ˆœ์„œ ์ค‘์š”, ๋ฐ”๋€Œ๋ฉด ์•ˆ๋จ! -->
	
	<!-- SqlSessionTemplate ๊ด€๋ จ ์„ค์ • -->
	<settings>
	
		<setting name="jdbcTypeForNull" value="NULL"/>
 	</settings>
	
	<!-- ๋ณ„์นญ ์ž‘์„ฑ ๋ถ€๋ถ„ -->
	<typeAliases>
		<typeAlias type="edu.kh.comm.member.model.vo.Member" alias="member"/>
		
		<typeAlias type="edu.kh.comm.board.model.vo.Board"  		alias="board"/>
		<typeAlias type="edu.kh.comm.board.model.vo.BoardDetail"  	alias="detail"/>
		<typeAlias type="edu.kh.comm.board.model.vo.BoardImage"  	alias="boardImage"/>
		<typeAlias type="edu.kh.comm.board.model.vo.BoardType"  	alias="boardType"/>
	
		
	</typeAliases>
	
	<!-- SQL์ด ์ž‘์„ฑ๋˜๋Š” mapper ํŒŒ์ผ ์œ„์น˜ ๋“ฑ๋ก -->
	<mappers>
	<!-- 
		<mapper resource=""/>์˜ ์ž‘์„ฑ ๊ธฐ์ค€
		->src/main/resources ํด๋”
		
	 -->
		<mapper resource="/mappers/member-mapper.xml"/>
		<mapper resource="/mappers/myPage-mapper.xml"/>
		<mapper resource="/mappers/board-mapper.xml"/>
	</mappers>



</configuration>

 

 

 

2. Mybatis-confing.xml ๋œฏ์–ด๋ณด๊ธฐ

 

1. Settings

  • <settings> ์š”์†Œ๋Š” MyBatis ์ „์—ญ ์„ค์ •์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ฃผ์š” ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • cacheEnabled: MyBatis๊ฐ€ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ true์ž…๋‹ˆ๋‹ค.

  • lazyLoadingEnabled: ์ง€์—ฐ ๋กœ๋”ฉ์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

  • defaultStatementTimeout: ๋ชจ๋“  SQL ๊ตฌ๋ฌธ์˜ ๊ธฐ๋ณธ ํƒ€์ž„์•„์›ƒ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ null์ž…๋‹ˆ๋‹ค.

  • jdbcTypeForNull: ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ null ๊ฐ’์„ ์ „๋‹ฌํ•  ๋•Œ JDBC ํƒ€์ž…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ OTHER์ž…๋‹ˆ๋‹ค.

  • mapUnderscoreToCamelCase: ์นด๋ฉœ ์ผ€์ด์Šค(camel case)์™€ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค(snake case)๋ฅผ ์ž๋™ ๋งคํ•‘ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค.

  • logImpl: ๋กœ๊น… ๊ตฌํ˜„์ฒด(Logger)๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ org.apache.ibatis.logging.slf4j.Slf4jImpl์ž…๋‹ˆ๋‹ค.

 

** jdbcTypeForNull:

- insert/update ์ง„ํ–‰ ์‹œ null์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ Mybatis๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ ์‹œํ‚จ๋‹ค.

- ์œ„ ์š”์†Œ๋ฅผ ์„ธํŒ…ํ•˜๋ฉด null์ด ํฌํ•จ๋  ๊ฒฝ์šฐ null๊ฐ’์„ ์ง€์ •๋œ 'value'๊ฐ’์œผ๋กœ insertํ•˜๊ฑฐ๋‚˜ update ์‹œํ‚จ๋‹ค. 

- ์ฆ‰, ์ „๋ฌธ์˜ ์„ธํŒ…์€ null๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด 'NULL' (๋ฐ˜๋“œ์‹œ ๋Œ€๋ฌธ์ž)๋กœ ๋Œ€์ฒดํ•˜๋ผ๋Š” ๋œป์ด๋‹ค.

 

 

 

 

2. typeAliases

 

  • <typeAliases>๋Š” MyBatis์—์„œ ์‚ฌ์šฉํ•  ์ž๋ฐ” ํด๋ž˜์Šค์˜ ๋ณ„์นญ(alias)์„ ์„ค์ •ํ•˜๋Š” ํƒœ๊ทธ์ด๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด XML ํŒŒ์ผ์—์„œ ํด๋ž˜์Šค์˜ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ ๋ฐ ํด๋ž˜์Šค๋ช…์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๋Œ€์‹  ๊ฐ„๋‹จํ•œ ๋ณ„์นญ์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„ ์ฝ”๋“œ์—์„œ Member ํด๋ž˜์Šค๋ฅผ member๋ผ๋Š” ๋ณ„์นญ์œผ๋กœ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, XML ํŒŒ์ผ์—์„œ edu.kh.comm.member.model.vo.Member ๋Œ€์‹  member๋ผ๋Š” ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ๋˜ํ•œ ํด๋ž˜์Šค ์ด๋ฆ„์ด๋‚˜ ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ XML ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฏ€๋กœ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค.

 

 

3. mappers

 

  • MyBatis์—์„œ SQL ๋งคํผ ํŒŒ์ผ์„ ๋“ฑ๋กํ•˜๋Š” ํƒœ๊ทธ. mapper ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“ฑ๋กํ•  ๋งคํผ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
  • ์œ„์˜ ์ฝ”๋“œ์—์„œ๋Š” member-mapper.xml, myPage-mapper.xml, board-mapper.xml ์ด๋ ‡๊ฒŒ 3๊ฐœ์˜ ๋งคํผ ํŒŒ์ผ์„ ๋“ฑ๋กํ•˜๊ณ  ์žˆ๋‹ค.
  • ์ด ๋งคํผ ํŒŒ์ผ๋“ค์€ src/main/resources ํด๋” ๋‚ด์— ์œ„์น˜ํ•ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋“ฑ๋ก๋œ ๋งคํผ ํŒŒ์ผ์€ SQL์„ ํฌํ•จํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ ๋งคํผ ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ • ํ…Œ์ด๋ธ”์— ๋Œ€์‘๋˜๋Š” SQL ์ž‘์„ฑ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•
Comments