MyBatis 이해하기 (1)

김영헌·2022년 1월 21일
0

목록 보기
9/9
post-thumbnail

오늘은 MyBatis를 통해서 DB와 소통할때 어떤 순서로 흐름이 돌아가는지 보여주고자 한다.

0. 큰 그림


1. /~~~형태로 request가 들어오게 되고 그것을 ~Controller에서 대응한다.
2. ~Controller(@Controller)는 ~ServiceImpl(@Service)을 호출한다.
3. ~ServiceImpl(@Service)은 ~DAO(@Repository)를 호출한다.
4. ~DAO(@Repository)는 ~-mapper.xml을 호출해서 수행한다.
5. 반대방향으로 쭉 돌아오는 것이다.

1. root-context.xml 파일에

data source, SqlSessionFactory, SqlSession bean 등록

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
	<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://[DB주소]/[DB이름]"/>
		<property name="username" value="DB아이디"/>
		<property name="password" value="DB비밀번호"/>
	</bean>
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="configLocation" value="classpath:mybatis-config.xml"/>
		<property name="mapperLocations" value="classpath:mappers/*-mapper.xml"/>
	</bean>
	
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
		<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
	</bean>
</beans>
  • dataSource
    DB 연동시 필요한 정보들을 담아주고 연결한다.
  • SqlSessionFactoryBean
    • dataSource를 사용하여 DB연결
    • MyBatis 설정파일 위치 설정 (configLocation)
    • Mapper 파일 위치 설정 (mapperLocations)
  • SqlSessionTemplate
    • public Object selectOne(String stmt, Object param)
    • public List selectList(String stmt, Object param)
    • public int insert(String stmt, Object param)
    • public int update(String stmt, Object param)
    • public int delete(String stmt, Object param)
      ex)
profile
대기업 회장님

0개의 댓글