[Spring-boot] mybatis- config.xml(typeAliases)

ieed0205·2021년 1월 7일
0

🍃Spring

목록 보기
24/26
post-thumbnail

mybatis-config.xml


기존의 Mapper.xml에 대해서는 다음과 같이 패키지명으로 resultType이나 pramterType을 받아왔어야 했습니다.

Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper 
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.vue.menu.mapper.MenuMapper">

    <select id="selectMenu" resultType="com.example.vue.menu.mapper.vo.menuVO">
        SELECT * FROM t_vue_menu_m
    </select>
</mapper>

resultType을 조금 더 간편하게 작성하고자 저는 typeAlies를 사용하기 위해 mybatis-config.xml 설정을 해주었습니다.

1> Config.java

1 @Configuration
2 @EnableTransactionManagement
3 public class DatabaseConfig {

4	@Autowired
5	ApplicationContext applicationContext;

6	@Bean
7       public  SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
8       final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
9       sessionFactory.setDataSource(dataSource);

10      PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
11      sessionFactory.setMapperLocations(resolver.getResources("classpath:mapper/*/*.xml"));
12      sessionFactory.setConfigLocation(applicationContext.getResource("classpath:mapper/mybatis-config.xml"));
13      sessionFactory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
14      return sessionFactory.getObject();
15  }

필요한 부분은 4-5, 12 번 줄의 코드입니다.
※ 해당 파일의 경로에 주의하세요!

2> mybatis-config.xml

<?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>

	<!-- 별칭 -->
	<typeAliases>
		<typeAlias type="com.example.vue.menu.vo.MenuVO" alias="menuVO"/>
	</typeAliases>

</configuration>

해당 경로에 맞게 mybatis-config.xml 파일을 생성한 후 작성해줍니다.

3> mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper 
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.vue.menu.mapper.MenuMapper">

    <select id="selectMenu" resultType="menuVO">
        SELECT * FROM t_vue_menu_m
    </select>
</mapper>

다음과 같이 간소화 시킬 수 있습니다!
코드의 사용이 앞으로 많아질 것임을 방지하여 사용했습니다.

profile
🔥 머릿속으로 생각하지만 말고, 행동으로 보여줘

0개의 댓글