my batis-plus 설정 에서 Mapper 인터페이스 경 로 를 찾 을 수 없 는 구덩이 입 니 다.
9416 단어 mybatis-plusMapper인터페이스 경로
이에 기록 합 니 다.문 제 는 다음 과 같 습 니 다.
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod$SqlCommand.
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.
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 패키지 참조
<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 인터페이스 경 로 를 찾 을 수 없 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많이 지 켜 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2. 스프링부트와 MySQL, mybatis 연동 테스트미리 t_user 테이블에 데이터 두개를 넣어놓았다. UserRegisteration.java UserRegisterationService.java UserRegisterationServiceImp.java user...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.