springboot整合mybatis-plus

img

package com.Dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pojo.Student;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface StudentDao  extends BaseMapper<Student> {

}
package com.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("students")
public class Student {
    private String sno;
    private String name;
    private int  age;
    private String nativee;
    private String grage;
}

配置类

server:
  port: 80

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/friend?serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: 123456

pom文件

<dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.4.3version>
        dependency>

        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
    dependencies>

测试类

@SpringBootTest()
class MytestApplicationTests {

    @Autowired
    private StudentDao studentDao;
    @Test
    void contextLoads() {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("sno", "0001");
        Student student = studentDao.selectOne(queryWrapper);
        System.out.println(student);
    }
}

报错

img


Unsatisfied dependency expressed through field 'studentDao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.Dao.StudentDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

如何解决

该回答引用chatgpt:这个配置有吗
少了一下配置吧,

import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.beans.PropertyVetoException;

/**
 * Description
 * Author: rabbiter
 * Date: 2020/2/26 23:39
 **/
@Configuration
// 配置mybatis的扫描路径
@MapperScan("com.zjh.student_mis.dao")
public class DataSourceConfiguration {
  @Value("${jdbc.driver}")
  private String jdbcDriver;
  @Value("${jdbc.url}")
  private String jdbcUrl;
  @Value("${jdbc.username}")
  private String jdbcUsername;
  @Value("${jdbc.password}")
  private String jdbcPassword;

  @Bean(name="dataSource")
  public ComboPooledDataSource createDataSource() throws PropertyVetoException {
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass(jdbcDriver);
    dataSource.setJdbcUrl(jdbcUrl);
    dataSource.setUser(jdbcUsername);
    dataSource.setPassword(jdbcPassword);
    // 关闭连接后不自动commit
    dataSource.setAutoCommitOnClose(false);
    return dataSource;
  }
}