기존의 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 @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 번 줄의 코드입니다.
※ 해당 파일의 경로에 주의하세요!
<?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 파일을 생성한 후 작성해줍니다.
<?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>
다음과 같이 간소화 시킬 수 있습니다!
코드의 사용이 앞으로 많아질 것임을 방지하여 사용했습니다.