티스토리 뷰
1. @Autowired로 SqlSession을 불러다가 sqlSession를 이용
@Repository
public class BoardDao {
@Autowired
private SqlSession sqlSession;
public List<Board> select(){
return sqlSession.selectList("boardselect");
}
}
<beans:beans .............>
<beans:bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSession">
<beans:property name="configLocation" value="classpath:mybatis-config.xml"></beans:property>
<beans:property name="mapperLocations" value="classpath:mappers/**/*.xml" />
<beans:property name="dataSource" ref="dataSource"></beans:property>
<beans:property name="interval" value="3000" />
</beans:bean>
<beans:bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSessionTemplate">
<beans:constructor-arg ref="sqlSession"></beans:constructor-arg>
</beans:bean>
</beans:beans>
다중DB 연결은 연결DB마다 sqlSession, sqlSessionTemplate를 만들어서
@Autowired로 끌어올때 다르게 만들었던 id값으로 끌어다가 쓰면 그 DB에서 쿼리가 돔
2. interface SampleDao에 @Mapper 선언하고 설정파일에서 mapper.xml과 연결
@Mapper
public interface BoardDao {
public List<Board> select();
}
<beans:bean ........>
<beans:bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSession">
<beans:property name="configLocation" value="classpath:mybatis-config.xml"></beans:property>
<beans:property name="mapperLocations" value="classpath:mappers/oracle/*.xml" />
<beans:property name="dataSource" ref="dataSource1"></beans:property>
<beans:property name="interval" value="3000" />
</beans:bean>
<mybatis-spring:scan base-package="iris.oracle" factory-ref="sqlSession"/>
</beans:bean>
다중DB를 쓰려면
<beans:bean ........>
<beans:bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSession">
<beans:property name="configLocation" value="classpath:mybatis-config.xml"></beans:property>
<beans:property name="mapperLocations" value="classpath:mappers/oracle/*.xml" />
<beans:property name="dataSource" ref="dataSource1"></beans:property>
<beans:property name="interval" value="3000" />
</beans:bean>
<beans:bean class="iris.RefreshableSqlSessionFactoryBean" id="sqlSession2">
<beans:property name="configLocation" value="classpath:mybatis-config.xml"></beans:property>
<beans:property name="mapperLocations" value="classpath:mappers/maria/*.xml" />
<beans:property name="dataSource" ref="dataSource2"></beans:property>
<beans:property name="interval" value="3000" />
</beans:bean>
<mybatis-spring:scan base-package="iris.oracle" factory-ref="sqlSession1"/>
<mybatis-spring:scan base-package="iris.maria" factory-ref="sqlSession2"/>
</beans:bean>
'spring(boot)' 카테고리의 다른 글
[timezone]서버(ubuntu) DB저장 시간이 안맞을 경우 (1) | 2023.11.27 |
---|---|
[jpa]분명 LAZY로 돌아야 하는데 EAGER로 돌때 (0) | 2023.11.09 |
[jpa]테이블 구조에 따라 Entity class (0) | 2023.11.07 |
[jpa]@OneToOne (0) | 2023.11.04 |
[jpa]query method, projection (0) | 2023.10.11 |