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
这样就解决了!