springboot整合ssm出现的一系列问题总结

整了大概十几个小时叭,修改了好几十遍,昨晚整到两点多回到原点都快放弃了,在现在终于整了出来。简直是神奇,仿佛是来自舍友的奇迹。
非常奇妙。记录一下吧。
最初的报错是@RestController爆红,检查了一下pom.xml,发现没有指定版本,指定了版本就好了,这个很简单就不放图了。

第二个报错就是找不到mapper,这个有两个解决办法,一个是在启动类里面加上检测的范围,@MapperScan("com.test")

另一种就比较麻烦,在每个mapper上面都加上@Mapper,

亲测这两个方法都可以用,也可以同时用,挺好使的。

但是接下来又报错了,说我sqlSessionFactory也找不到,这个整了好久好久,网上有好多教程,我都尝试了,下面简单记录一下。
1.看看mysql的服务启动没有。有可能是没有启动成功。
2.检查一下mapper.xml的映射有没有搞错,有可能是写错了方法。
3.这个很重要,在我身上出现了但是这个方法对我这次没用。就是检查一下target里面有没有xml文件,有可能是自动过滤,把xml文件过滤掉了。在pom里面设置一下不过滤就好。这个在网上就能找到,我就不再赘述了。

然后又说我的方法重名了,sun包下面(我引入的jar包)和google包(也是引用的)里面都有service,这个更改一下扫描范围,把运行函数的@MapperScan("com.test")括号里面的东西改小一点就可以了,实在不行加个包,把项目的子包全放进去然后扫这个包就好了。

这几个问题是反复出现的,轮回一样一直出。我是怎么解决的呢,我直接清空了自己的依赖,复制了别人的依赖,立刻就成功了。我推测应该是某个包的版本出现了问题。(大概率是jdbc包)
下面粘贴一下依赖代码:

点击查看代码
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.4</version>
  </parent>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </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>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

再添加一个application.properties

点击查看代码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://hadoop102:3306/company?serverTimezone=GMT&characterEncoding=utf-8&useSSL=false
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=000000

mybatis.type-aliases-package=com.test.Pojo
mybatis.mapper-locations=classpath:mybatis/*.xml

这样就解决了!

posted @ 2022-10-11 16:25  吕洞玄  阅读(90)  评论(0编辑  收藏  举报