springboot4.0对应的依赖
报错出现这个错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'textController': Injection of resource dependencies failed
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'utioMapper' defined in file [D:springbootspring_UtioY_V1targetclassescomexampleUtioyV1utiomapperUtioMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
依赖:
springboot3的mybatisplus依赖(不用了)
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.7</version> </dependency> <!-- //mysql的jar包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <!--druid数据库驱动--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.4</version> </dependency>
springboot4的mybatisplus依赖(使用这个)
<!-- 阿里巴巴开源的 Druid 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.27</version> </dependency> <!-- 适配springboot4.0 的 mybatis plus 依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot4-starter</artifactId> <version>3.5.15</version> </dependency> <!-- 官方主推的最新稳定版(适配 Java 8-21、MySQL 5.7/8.0/9.0) --> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>9.5.0</version> <scope>runtime</scope> </dependency>
1.问题描述
以前使用mybatis-plus的3.5.7版本的时候可以使用到springboot 3.0.x ,但是更新了最新的springboot 如果在使用这个会报映射错误, 在最新的springboot4.0的环境下他需要使用到最新的3.5.15版本
2.错误解决
所以4.0后只需要将 mybatisplus插件换成 3.5.15 就可以使用
然后在配置yml(需要修改数据库名称utio和username和password)
--- spring: datasource: #rewriteBatchedStatements做批处理 url: 'jdbc:mysql://127.0.0.1:3306/utio?characterEncoding=utf8&autoReconnect=true&autoReconnectForPools=true&connectTimeout=0&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true' username: 'root' password: '123456' driver-class-name: 'com.mysql.cj.jdbc.Driver' #druid数据库连接池 type: com.alibaba.druid.pool.DruidDataSource --- # mybatis-plus相关配置 mybatis-plus: mapper-locations: classpath*:/mapper/*.xml # 查询的地址 # mapper-locations: classpath*:/mapper/*.xml # 查询的地址 # 以下配置均有默认值,可以不设置 configuration: # 开启自动驼峰命名下划线转大写 map-underscore-to-camel-case: false # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 call-setters-on-nulls: true # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl cache-enabled: false #关闭二级缓存 ---
3.创建mapper文件
<
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE mapper PUBLIC '-////DTD Mapper 3.0//EN' 'http:///dtd/mybatis-3-mapper.dtd'> <mapper namespace='com.example.UtioyV1.utio.mapper.UtioMapper'> <!-- 批量插入日志:insert_log(List<LogEntry> logs) --> <insert id='save_log' parameterType='java.util.List'> INSERT INTO sys_log ( type, message, user, level, reserved, create_time ) VALUES <!-- 遍历List集合,拼接多条值 --> <foreach collection='list' item='log' separator=','> ( #{log.type}, #{log.message}, #{log.user}, #{log.level.value}, <!-- 枚举转字符串:取枚举名称(INFO/ERROR) --> #{log.reserved}, #{log.create_time} ) </foreach> </insert> </mapper>
4.导入Mappe
@MapperScan('com.example.*.mapper') //扫描com.example.UtioyV1.mapper下的依赖
5.导入
@Mapper public interface UtioMapper{ Integer save_log(@Param('list') List<LogEntryModel> log); }
6.问题详细
main方法注解
@SpringBootApplication @MapperScan('com.example.minio_web_3.plus.mapper') public class MinioWeb3Application { public static void main(String[] args) { SpringApplication.run(MinioWeb3Application.class, args); } }