my batis-plus 설정 에서 Mapper 인터페이스 경 로 를 찾 을 수 없 는 구덩이 입 니 다.

my batis-plus 오늘 문제 가 발생 했 습 니 다.my batis 가 mapper.xml 파일 을 읽 지 못 했 습 니 다.
이에 기록 합 니 다.문 제 는 다음 과 같 습 니 다.
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod$SqlCommand.(MybatisMapperMethod.java:242)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.(MybatisMapperMethod.java:54)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedMapperMethod$0(MybatisMapperProxy.java:65)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod(MybatisMapperProxy.java:65)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:60)
at com.sun.proxy.$Proxy72.findUserByName(Unknown Source)
at com.husy.service.impl.SystemUserServiceImpl.findUserByName(SystemUserServiceImpl.java:23)org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.husy.mapper.SystemUserMapper.findUserByName
오류 코드 는 다음 과 같 습 니 다:
mapper.xml 디 렉 터 리
在这里插入图片描述
코드 는 다음 과 같 습 니 다:
유닛 테스트

@Test
public void findUser(){
	SystemUser systemUser= systemUserService.findUserByName("admin");
	System.out.println(systemUser.toString());
}
mybatis-puls 설정

@EnableTransactionManagement
@Configuration
@MapperScan("com.husy.mapper")
public class MybatisConfig {

  /**
   * mybatis-plus     
   */
  @Bean
  public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
  }
}
서비스 구현

@Service
public class SystemUserServiceImpl implements SystemUserService {
	@Autowired
	private SystemUserMapper userMapper;

	@Override
	public SystemUser findUserByName(String name) {
		return userMapper.findUserByName(name);
	}
}
mapper 인터페이스

@Component
public interface SystemUserMapper {
	SystemUser findUserByName(@Param("userAccount") String name);
}
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.husy.mapper.SystemUserMapper">
  <resultMap id="systemUserMap" type="com.husy.domain.SystemUser" >
    <id column="user_id" property="userId" />
    <result column="user_account" property="userAccount" />
    <result column="user_password" property="userPassword" />
    <result column="user_phone" property="userPhone" />
  </resultMap>
  <select id="findUserByName" resultMap="systemUserMap">
     SELECT
      user_id,
      user_account,
      user_password,
      user_phone
     FROM t_system_user
     where user_account = #{userAccount}
  </select>
</mapper>
위의 코드 를 통 해 알 수 있다.mapper 인터페이스 에 있 는 방법 과 맵 파일 에 있 는 방법 이름 은 같 습 니 다.이름 오류 로 인 한 상황 이 존재 하지 않 습 니 다.반환 값,매개 변수 형식 등 이 정확 합 니 다.방법 을 찾 지 못 하면 맵 파일 설정 문제 일 것 입 니 다.읽 지 못 해 찾 을 수 없 는 상황 이 발생 할 수 있 습 니 다.
내 설정 은 다음 과 같 습 니 다:
문제 오류 의 관건 적 인 위치
제 가 인용 한 건 mybatis-plus-boot-starte 의존 입 니 다.

<dependency>
  <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.1.0</version>
 </dependency>
mapper.xml 파일 참조 경로 설정 은 다음 과 같 습 니 다.

mybatis.mapper-locations=classpath:mapper/*.xml
이 로 인해 my batis 는 mapper 맵 파일 을 읽 지 못 합 니 다.
찾 아 보기:
  • mybatis-plus-boot-starter 의존 도 를 참조 하려 면 mybatis-plus.mapper-locations
  • 을 설정 해 야 합 니 다.
  • my batis-plus 의존 도 를 참조 하려 면 my batis.mapper-locations
  • 을 설정 해 야 합 니 다.
    다음 과 같다.
    mybatis-plus 패키지 참조
    
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>3.1.0</version>
    </dependency>
    
    
    mybatis.mapper-locations=classpath:mapper/*.xml
    
    mybatis-plus-boot-starter 패키지 참조
    
    <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.1.0</version>
     </dependency>
    
    mybatis-plus.mapper-locations=classpath:mapper/*.xml
    
    그 중의 한 가지 방식 만 선택 하면 문제 가 없다.
    오늘 댓 글 에 소 용이 없다 는 친구 가 있 는 것 을 보고 데모 에 게 문제 가 있 는 친구 에 게 비교 해 볼 수 있 습 니 다.
    POM
    
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
      </parent>
      <groupId>com.example</groupId>
      <artifactId>demo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>demo</name>
      <description>Demo project for Spring Boot</description>
    
      <properties>
        <java.version>1.8</java.version>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.1</version>
        </dependency>
    
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.3.0</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
          <exclusions>
            <exclusion>
              <groupId>org.junit.vintage</groupId>
              <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    
    </project>
    
    application.properties
    
    # DataSource Config
    spring.datasource.url=jdbc:mysql://localhost:3306/db_husy?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=CONVERT_TO_NULL
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    mybatis-plus.mapper-locations=classpath:/mapper/*.xml
    
    MybatisConfig
    
    @EnableTransactionManagement
    @Configuration
    @MapperScan("com.example.demo.mapper")
    public class MybatisConfig {
    	/**mybatis-plus     */
    	@Bean
    	public PaginationInterceptor paginationInterceptor() {
    		return new PaginationInterceptor();
    	}
    }
    
    다른 파일 은 거의 변 하지 않 았 다.목록 을 첨부 하 다
    在这里插入图片描述
    유닛 테스트
    
    @SpringBootTest
    class DemoApplicationTests {
    	@Autowired
    	SystemUserService systemUserService;
    	@Test
    	public void findUser(){
    		SystemUser systemUser= systemUserService.findUserByName("admin");
    		System.out.println(systemUser.toString());
    	}
    
    }
    在这里插入图片描述
    my batis-plus 설정 에서 Mapper 인터페이스 경 로 를 찾 을 수 없 는 구덩이 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 my batis-plus 에서 Mapper 인터페이스 경 로 를 찾 을 수 없 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많이 지 켜 주세요!

    좋은 웹페이지 즐겨찾기