MyBatis运行时报错


"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\IntelliJ IDEA 2022.2\lib\idea_rt.jar=54897:D:\IntelliJ IDEA 2022.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;C:\Users\20120\Desktop\xkly\target\classes;D:\maven-repository\org\springframework\boot\spring-boot-starter-web\2.4.5\spring-boot-starter-web-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter\2.4.5\spring-boot-starter-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot\2.4.5\spring-boot-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-logging\2.4.5\spring-boot-starter-logging-2.4.5.jar;D:\maven-repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\maven-repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\maven-repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;D:\maven-repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;D:\maven-repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\maven-repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\maven-repository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-json\2.4.5\spring-boot-starter-json-2.4.5.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-tomcat\2.4.5\spring-boot-starter-tomcat-2.4.5.jar;D:\maven-repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.45\tomcat-embed-core-9.0.45.jar;D:\maven-repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;D:\maven-repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.45\tomcat-embed-websocket-9.0.45.jar;D:\maven-repository\org\springframework\spring-web\5.3.6\spring-web-5.3.6.jar;D:\maven-repository\org\springframework\spring-beans\5.3.6\spring-beans-5.3.6.jar;D:\maven-repository\org\springframework\spring-webmvc\5.3.6\spring-webmvc-5.3.6.jar;D:\maven-repository\org\springframework\spring-aop\5.3.6\spring-aop-5.3.6.jar;D:\maven-repository\org\springframework\spring-context\5.3.6\spring-context-5.3.6.jar;D:\maven-repository\org\springframework\spring-expression\5.3.6\spring-expression-5.3.6.jar;D:\maven-repository\org\projectlombok\lombok\1.18.20\lombok-1.18.20.jar;D:\maven-repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\maven-repository\org\springframework\spring-core\5.3.6\spring-core-5.3.6.jar;D:\maven-repository\org\springframework\spring-jcl\5.3.6\spring-jcl-5.3.6.jar;D:\maven-repository\mysql\mysql-connector-java\8.0.23\mysql-connector-java-8.0.23.jar;D:\maven-repository\com\baomidou\mybatis-plus-boot-starter\3.4.2\mybatis-plus-boot-starter-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus\3.4.2\mybatis-plus-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-extension\3.4.2\mybatis-plus-extension-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-core\3.4.2\mybatis-plus-core-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-annotation\3.4.2\mybatis-plus-annotation-3.4.2.jar;D:\maven-repository\com\github\jsqlparser\jsqlparser\4.0\jsqlparser-4.0.jar;D:\maven-repository\org\mybatis\mybatis\3.5.6\mybatis-3.5.6.jar;D:\maven-repository\org\mybatis\mybatis-spring\2.0.5\mybatis-spring-2.0.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-autoconfigure\2.4.5\spring-boot-autoconfigure-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-jdbc\2.4.5\spring-boot-starter-jdbc-2.4.5.jar;D:\maven-repository\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar;D:\maven-repository\org\springframework\spring-jdbc\5.3.6\spring-jdbc-5.3.6.jar;D:\maven-repository\org\springframework\spring-tx\5.3.6\spring-tx-5.3.6.jar" com.example.xkly.XklyApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.5)

2025-02-02 21:26:51.703  INFO 7060 --- [           main] com.example.xkly.XklyApplication         : Starting XklyApplication using Java 1.8.0_152 on xyt with PID 7060 (C:\Users\20120\Desktop\xkly\target\classes started by 20120 in C:\Users\20120\Desktop\xkly)
2025-02-02 21:26:51.706  INFO 7060 --- [           main] com.example.xkly.XklyApplication         : No active profile set, falling back to default profiles: default
2025-02-02 21:26:52.659  INFO 7060 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2025-02-02 21:26:52.667  INFO 7060 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-02-02 21:26:52.667  INFO 7060 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.45]
2025-02-02 21:26:52.756  INFO 7060 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-02-02 21:26:52.756  INFO 7060 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1002 ms
2025-02-02 21:26:52.932  INFO 7060 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.4.2 
2025-02-02 21:26:54.264  WARN 7060 --- [           main] c.b.m.core.metadata.TableInfoHelper      : This primary key of "id" is primitive !不建议如此请使用包装类 in Class: "com.example.xkly.User"
2025-02-02 21:26:54.496  INFO 7060 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2025-02-02 21:26:54.507  INFO 7060 --- [           main] com.example.xkly.XklyApplication         : Started XklyApplication in 3.169 seconds (JVM running for 4.58)

这个警告的意思是:

你的 User 实体类 中的 id 字段是 基本类型 int建议使用包装类型 Integer


✅ 解决方案

1️⃣ 修改 User 实体类

📌 错误写法 (使用基本类型 int)

public class User {
    private int id;  // ❌ 不建议使用基本类型
    private String name;
    private String email;
}

✅ 正确写法 (使用包装类型 Integer)

package com.example.xkly.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")  // 指定数据库表名
public class User {
    @TableId  // 指定主键
    private Integer id;  // ✅ 使用 Integer 避免 MyBatis-Plus 警告
    private String name;
    private String email;
}

2️⃣ 为什么要用 Integer 而不是 int

类型区别
int (基本类型)不能为 null,如果数据库 id 为空,可能导致 NullPointerException
Integer (包装类)可以为 null,更符合 MyBatis-Plus 设计
  • 如果数据库 id 是自增主键,插入数据时 id 可能是 null,但 int 不能为 null,所以会出错。
  • Integer 更符合 MyBatis-Plus 规范,它默认支持 null,避免不必要的错误。

3️⃣ 其他检查项

✅ 确保 UserMapper.java 继承 BaseMapper<User>

package com.example.xkly.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.xkly.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> { 
}

✅ 确保 application.yml 正确

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

这样可以让 SQL 语句打印出来,方便调试。


🎯 结论

  • ⚠️ 错误:private int id;
  • ✅ 正确:private Integer id;
  • 重新运行 mvn clean package,警告就会消失!

这样 MyBatis-Plus 就不会报警告了 🚀

x修改完成,确实不报错了

"C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\IntelliJ IDEA 2022.2\lib\idea_rt.jar=55518:D:\IntelliJ IDEA 2022.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_152\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_152\jre\lib\rt.jar;C:\Users\20120\Desktop\xkly\target\classes;D:\maven-repository\org\springframework\boot\spring-boot-starter-web\2.4.5\spring-boot-starter-web-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter\2.4.5\spring-boot-starter-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot\2.4.5\spring-boot-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-logging\2.4.5\spring-boot-starter-logging-2.4.5.jar;D:\maven-repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\maven-repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\maven-repository\org\apache\logging\log4j\log4j-to-slf4j\2.13.3\log4j-to-slf4j-2.13.3.jar;D:\maven-repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;D:\maven-repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;D:\maven-repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\maven-repository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-json\2.4.5\spring-boot-starter-json-2.4.5.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;D:\maven-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-tomcat\2.4.5\spring-boot-starter-tomcat-2.4.5.jar;D:\maven-repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.45\tomcat-embed-core-9.0.45.jar;D:\maven-repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;D:\maven-repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.45\tomcat-embed-websocket-9.0.45.jar;D:\maven-repository\org\springframework\spring-web\5.3.6\spring-web-5.3.6.jar;D:\maven-repository\org\springframework\spring-beans\5.3.6\spring-beans-5.3.6.jar;D:\maven-repository\org\springframework\spring-webmvc\5.3.6\spring-webmvc-5.3.6.jar;D:\maven-repository\org\springframework\spring-aop\5.3.6\spring-aop-5.3.6.jar;D:\maven-repository\org\springframework\spring-context\5.3.6\spring-context-5.3.6.jar;D:\maven-repository\org\springframework\spring-expression\5.3.6\spring-expression-5.3.6.jar;D:\maven-repository\org\projectlombok\lombok\1.18.20\lombok-1.18.20.jar;D:\maven-repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\maven-repository\org\springframework\spring-core\5.3.6\spring-core-5.3.6.jar;D:\maven-repository\org\springframework\spring-jcl\5.3.6\spring-jcl-5.3.6.jar;D:\maven-repository\mysql\mysql-connector-java\8.0.23\mysql-connector-java-8.0.23.jar;D:\maven-repository\com\baomidou\mybatis-plus-boot-starter\3.4.2\mybatis-plus-boot-starter-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus\3.4.2\mybatis-plus-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-extension\3.4.2\mybatis-plus-extension-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-core\3.4.2\mybatis-plus-core-3.4.2.jar;D:\maven-repository\com\baomidou\mybatis-plus-annotation\3.4.2\mybatis-plus-annotation-3.4.2.jar;D:\maven-repository\com\github\jsqlparser\jsqlparser\4.0\jsqlparser-4.0.jar;D:\maven-repository\org\mybatis\mybatis\3.5.6\mybatis-3.5.6.jar;D:\maven-repository\org\mybatis\mybatis-spring\2.0.5\mybatis-spring-2.0.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-autoconfigure\2.4.5\spring-boot-autoconfigure-2.4.5.jar;D:\maven-repository\org\springframework\boot\spring-boot-starter-jdbc\2.4.5\spring-boot-starter-jdbc-2.4.5.jar;D:\maven-repository\com\zaxxer\HikariCP\3.4.5\HikariCP-3.4.5.jar;D:\maven-repository\org\springframework\spring-jdbc\5.3.6\spring-jdbc-5.3.6.jar;D:\maven-repository\org\springframework\spring-tx\5.3.6\spring-tx-5.3.6.jar" com.example.xkly.XklyApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.5)

2025-02-02 21:32:13.749  INFO 23464 --- [           main] com.example.xkly.XklyApplication         : Starting XklyApplication using Java 1.8.0_152 on xyt with PID 23464 (C:\Users\20120\Desktop\xkly\target\classes started by 20120 in C:\Users\20120\Desktop\xkly)
2025-02-02 21:32:13.752  INFO 23464 --- [           main] com.example.xkly.XklyApplication         : No active profile set, falling back to default profiles: default
2025-02-02 21:32:14.713  INFO 23464 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2025-02-02 21:32:14.721  INFO 23464 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-02-02 21:32:14.722  INFO 23464 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.45]
2025-02-02 21:32:14.811  INFO 23464 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-02-02 21:32:14.811  INFO 23464 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1010 ms
2025-02-02 21:32:14.979  INFO 23464 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.4.2 
2025-02-02 21:32:16.633  INFO 23464 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2025-02-02 21:32:16.643  INFO 23464 --- [           main] com.example.xkly.XklyApplication         : Started XklyApplication in 3.27 seconds (JVM running for 4.613)

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐