调用没有编写的代码使用的是mybatis-puls

问题如下
本架构用的是springboot加mubatis-puls
我没用调用selectOne方法然而报出这个错【抱拳】

img

他的意思是你要求返回一条,结果查出来很多条
你的selectCount返回值设置的是什么类型

断点看下是不是这里的错误

  • 你看下这篇博客吧, 应该有用👉 :Springboot集成Mybatis-puls
  • 除此之外, 这篇博客: springboot+mybatis-puls项目创建启动中的 2.代码生成器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
    与 mybatis 中的 mybatis-generator-core 类似。

    添加如下依赖到pom文件中

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.3.1.tmp</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.2</version>
    </dependency>
    

    完整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.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.lyh.test</groupId>
        <artifactId>test-mybatis-plus</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>test-mybatis-plus</name>
        <description>MyBatis-Plus 功能</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.3.1.tmp</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.6</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.10</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.3.1.tmp</version>
            </dependency>
            <!-- 添加 模板引擎 依赖 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </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>
    

    项目中建一个测试类TestAutoGenerate

    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    import com.baomidou.mybatisplus.generator.config.PackageConfig;
    import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    import com.baomidou.mybatisplus.generator.config.rules.DateType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import org.junit.Test;
    
    public class TestAutoGenerate {
        @Test
        public void autoGenerate() {
            // Step1:代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // Step2:全局配置
            GlobalConfig gc = new GlobalConfig();
            // 填写代码生成的目录(需要修改)
            String projectPath = "D:\\工作资料\\ZbrWx\\sell";
            // 拼接出代码最终输出的目录
            gc.setOutputDir(projectPath + "/src/main/java");
            // 配置开发者信息(可选)(需要修改)
            gc.setAuthor("zbr");
            // 配置是否打开目录,false 为不打开(可选)
            gc.setOpen(false);
            // 实体属性 Swagger2 注解,添加 Swagger 依赖,开启 Swagger2 模式(可选)
            //gc.setSwagger2(true);
            // 重新生成文件时是否覆盖,false 表示不覆盖(可选)
            gc.setFileOverride(false);
            // 配置主键生成策略,此处为 ASSIGN_ID(可选)
            gc.setIdType(IdType.ASSIGN_ID);
            // 配置日期类型,此处为 ONLY_DATE(可选)
            gc.setDateType(DateType.ONLY_DATE);
            // 默认生成的 service 会有 I 前缀
            gc.setServiceName("%sService");
            mpg.setGlobalConfig(gc);
    
            // Step3:数据源配置(需要修改)
            DataSourceConfig dsc = new DataSourceConfig();
            // 配置数据库 url 地址
            dsc.setUrl("jdbc:mysql://localhost:3306/student?characterEncodeing=utf-8&useSSL=false");
            // dsc.setSchemaName("testMyBatisPlus"); // 可以直接在 url 中指定数据库名
            // 配置数据库驱动
            dsc.setDriverName("com.mysql.jdbc.Driver");
            // 配置数据库连接用户名
            dsc.setUsername("root");
            // 配置数据库连接密码
            dsc.setPassword("1234");
            mpg.setDataSource(dsc);
    
            // Step:4:包配置
            PackageConfig pc = new PackageConfig();
            // 配置父包名(需要修改)
            pc.setParent("com.imooc");
            // 配置模块名(需要修改)
            pc.setModuleName("sell");
            // 配置 entity 包名
            pc.setEntity("entity");
            // 配置 mapper 包名
            pc.setMapper("mapper");
            // 配置 service 包名
            pc.setService("service");
            // 配置 controller 包名
            pc.setController("controller");
            mpg.setPackageInfo(pc);
    
            // Step5:策略配置(数据库表配置)
            StrategyConfig strategy = new StrategyConfig();
            // 指定表名(可以同时操作多个表,使用 , 隔开)(需要修改)
            strategy.setInclude("order_detail");
            // 配置数据表与实体类名之间映射的策略
            strategy.setNaming(NamingStrategy.underline_to_camel);
            // 配置数据表的字段与实体类的属性名之间映射的策略
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            // 配置 lombok 模式
            strategy.setEntityLombokModel(true);
            // 配置 rest 风格的控制器(@RestController)
            strategy.setRestControllerStyle(true);
            // 配置驼峰转连字符
            strategy.setControllerMappingHyphenStyle(true);
            // 配置表前缀,生成实体时去除表前缀
            // 此处的表名为 test_mybatis_plus_user,模块名为 test_mybatis_plus,去除前缀后剩下为 user。
            strategy.setTablePrefix(pc.getModuleName() + "_");
            mpg.setStrategy(strategy);
    
            // Step6:执行代码生成操作
            mpg.execute();
        }
    }
    

    按照注释修改好后执行测试类
    在这里插入图片描述
    第一次运行项目一定会报错,需要最后一步加上这个
    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料中关于Mybatis-Plus内置方法的介绍,可以尝试使用selectById方法进行查询,具体步骤如下:

    1. 在调用位置处引入需要的mapper接口,例如:
    @Autowired
    private UserMapper userMapper;
    
    1. 调用selectById方法进行查询,例如:
    User user = userMapper.selectById(1L);
    

    其中,1L为需要查询的记录的id。若要查询其他记录,则需将1L替换为相应的id。

    如果仍然出现错误,可以尝试检查是否在entity类中正确定义了对应的字段名和类型,以及是否在mapper接口中对应定义了selectById方法。若均正确无误仍然出现错误,可以查看控制台输出的具体错误信息,来进一步调试。

    如果还存在问题,可以提供更详细的错误信息,以便问题更快解决。