[mybatis]mybatis + SpringBoot 연동시 에러

이능멸·2023년 5월 8일
0

SpringBoot

목록 보기
1/7

📌알아두기

mybatis + SpringBoot 연동시 확인사항

🎯 1. application.properties 경로확인

  • 폴더구조
  • application.properties
mybatis.mapper-locations=classpath:mybatis/*.xml //mapper.xml의 경로
mybatis.configuration.map-underscore-to-camel-case=true

💡 폴더구조를 보고 mybatis.mapper-locations의 경로확인

🎯 2. mapper.xml과 mapper.java확인

  • 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.demo.sample.mapper.SampleMapper">
	<select id="selectTest" resultType="string">
		select 'test'
	</select>
</mapper>
  • mapper.java
package com.example.demo.sample.mapper;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface SampleMapper {
	// 샘플 조회
	String selectTest();
}

💡 namespace의 제대로된 mapper.java경로가 적혀있는지 확인
💡 query의 id가 mapper.java의 함수명과 일치하는지 확인
💡 query의 return이 mapper.java의 return과 일치하는지 확인
💡 mapper.java의 @Mapper확인

🎯 3. mapper.xml과 mapper.java확인

  • app1Application.java
package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan(basePackages = {"com.example.demo.sample.mapper"})
@SpringBootApplication
public class Myapp1Application {

	public static void main(String[] args) {
		SpringApplication.run(Myapp1Application.class, args);
	}
}

💡 mapper.java를 찾지못한다면 mapper.java 패키지 기술

@MapperScan(basePackages = {"com.example.demo.sample.mapper"}) 

🎯 4. build.gradle 확인(추가적인)

dependencies {
	// MyBatis
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.1'
}

💡 일정버전 이상부터는 interface를 활용한 mapper.java를 만드는것을 권유하고 있다. 여러방법을 적용했는데도 해결하지못한다면 버전을 확인하자

profile
안녕하세요

0개의 댓글