[SPRING] <action-myBatis.xml>

수경·2025년 3월 31일

SpringFrameWork

목록 보기
23/24
post-thumbnail

jdbc.properties

Spring에서 외부 프로퍼티 파일(jdbc.properties)을 로드하는 설정

<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>/WEB-INF/config/jdbc/jdbc.properties</value>
			</list>
		</property>
	</bean>

▶ Spring 애플리케이션에서 데이터베이스 설정을 jdbc.properties 파일에서 가져오기 위해 사용된다.

  • PropertyPlaceholderConfigurer :
    XML 설정에서 ${} 표현식을 사용하여 프로퍼티 값을 참조할 수 있도록 해준다.
    예: <property name="url" value="${db.url}" />

  • WEB-INF/config/jdbc/jdbc.properties 파일을 로드하여 속성 값을 읽어온다.

데이터베이스 연결

<bean id="dataSource" 
		class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
		<property name="driverClass" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>

▶데이터베이스 연결(DataSource)을 설정하는 부분

  • SimpleDriverDataSource 를 사용하여 JDBC 데이터베이스 연결을 설정한다.
  • DB 접속 정보를 외부 프로퍼티 파일 (jdbc.properties)에서 가져와 ${} 표현식으로 사용한다.

프로퍼티 설정 파일

이 코드가 제대로 작동하려면 프로퍼티 설정 파일 (jdbc.properties) 을 로드하는 설정이 필요하다.
<jdbc.properties>

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mydb
jdbc.username=root
jdbc.password=1234

Mybatis 설정, SQL 실행

sqlSessionTemplate을 통해 selectOne() , insert() , update() 등을 호출 가능하다. Spring이 세션을 자동으로 관리하므로 openSession() , close() 필요 없다.

<bean id="sqlSessionFactory" 
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:mybatis/model/modelConfig.xml" />
		<property name="mapperLocations" value="classpath:mybatis/mappers/*.xml" />	
	</bean>

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>

SqlSessionFactoryBean 을 사용하여 MyBatis의 SqlSessionFactory 를 생성한다.

▶ 데이터베이스 연결 설정과 MyBatis 매퍼(XML 파일)들을 로드한다.

▶ 위의 코드로 아래의 코드를 사용이 가능하다.

예) mappers/*.xml 예제

 <select id="getUserById" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    </select>

예) @Configuration 사용

sessionFactory.setConfigLocation(
            new ClassPathResource("mybatis/model/modelConfig.xml")
        );
        return sessionFactory.getObject();
    }

transacion

<bean id="transactionManager" 
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<tx:annotation-driven transaction-manager="transactionManager" />
</beans>

DataSourceTransactionManager 를 사용하여 데이터베이스 트랜잭션을 관리한다.
<tx:annotation-driven transaction-manager="transactionManager" />를 통해 @Transactional 어노테이션을 활성화

profile
개발 공부중•••

0개의 댓글