SpringBoot3+MyBatisPlus+Druid避坑记录

最近在学习SpringBoot编程,参考网上文章https://blog.youkuaiyun.com/abjtxf/article/details/132410101,写得很详细,高赞!但是按照文章中的步骤一步步做下来,仍然出现各种编译和运行问题,主要原因是因为采用了SpringBoot3的最新版本,出现各种组件不兼容。因为刚开始学,踩了很多坑,这里做一个记录备忘,如果有朋友遇到同样的问题,可以参考下,少走些弯路。

本文的基本逻辑是以上面的参考文章为蓝本,记录需要修正的地方,其他的与原文保持一致。

我使用的开发工具是:
Eclipse 2023-12版本,下载链接:https://www.eclipse.org/downloads/
Maven 3.9.6版本,下载链接:https://maven.apache.org/download.cgi
Java JDK 17版本,下载链接:https://www.oracle.com/java/technologies/downloads/#java17
MySql 5.7版本,下载链接:https://dev.mysql.com/downloads/windows/installer/
至于以上工具的基本环境设置,可以在网上搜索相关文章,非常多。

首先在Eclipse Marketplace里面安装STS4(现在是4.21.0版本),安装以后就支持SpringBoot3的开发。我创建项目时采用了最新的SpringBoot3.2.2版本,与此版本相适应,MyBatis-Plus已经升级为5.5版本(但仍没有解决Mybatis报错的问题,参见以下pom.xml中的注释),Druid需要用新的SpringBoot3相应的starter。另外,POM文件的标签路径也需要修改。我的pom.xml文件抄录如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mytest</groupId>
    <artifactId>spboot-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spboot-demo</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.2</version>
    </parent>
       
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        <dependency>
			<groupId>com.baomidou</groupId>
        	<artifactId>mybatis-plus-boot-starter</artifactId>
        	<version>3.5.5</version>
        	<!-- mybatis-plus 3.5.4和3.5.5与springboot3配合有mybatis兼容问题,请参考:
        	https://www.jb51.net/program/308745bxt.htm 以及
        	https://blog.youkuaiyun.com/weixin_46211609/article/details/135552632
        	-->
        	<exclusions>
        		<exclusion>
					<groupId>org.mybatis</groupId>
					<artifactId>mybatis-spring</artifactId>				
				</exclusion>
			</exclusions>
        </dependency>
        <dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>3.0.3</version>
		</dependency>
        
        <dependency>
			<groupId>com.alibaba</groupId>
			<!-- 注意这里要用boot-3-starter, 参考:
			https://blog.youkuaiyun.com/weixin_42217348/article/details/131236419
			-->
        	<artifactId>druid-spring-boot-3-starter</artifactId>
        	<version>1.2.20</version>
        </dependency>
        
        <dependency>
			<groupId>org.projectlombok</groupId>
        	<artifactId>lombok</artifactId>
        </dependency>
        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.mytest.spbootdemo.SpbootDemoApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

我的application.yml文件抄录如下:

# 应用服务 WEB 访问端口
server:
  port: 8080

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/ssm_db
      username: your-database-username
      password: your-database-password

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_
      id-type: auto
  configuration:
      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

另外,在运行程序时还经常报虚拟内存不足的异常,查阅相关文章,比较有用的参考链接如下:
https://blog.youkuaiyun.com/qq_35461948/article/details/117461355
https://blog.youkuaiyun.com/m0_67402914/article/details/124288590

最后附上一个好用的数据库管理工具heidisql,下载链接:https://www.heidisql.com/download.php?download=installer

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值